Author: lukaszlenart Date: Mon Jan 21 11:37:16 2013 New Revision: 1436290 URL: http://svn.apache.org/viewvc?rev=1436290&view=rev Log: Solves problem with possible NPE when key is null - https://github.com/apache/struts2/pull/4
Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java Modified: struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java?rev=1436290&r1=1436289&r2=1436290&view=diff ============================================================================== --- struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java (original) +++ struts/struts2/trunk/plugins/json/src/main/java/org/apache/struts2/json/JSONWriter.java Mon Jan 21 11:37:16 2013 @@ -408,18 +408,18 @@ public class JSONWriter { } Object key = entry.getKey(); + if (key == null) { + LOG.error("Cannot build expression for null key in #0", exprStack); + continue; + } + String expr = null; if (this.buildExpr) { - if (key == null) { - LOG.error("Cannot build expression for null key in " + this.exprStack); + expr = this.expandExpr(key.toString()); + if (this.shouldExcludeProperty(expr)) { continue; - } else { - expr = this.expandExpr(key.toString()); - if (this.shouldExcludeProperty(expr)) { - continue; - } - expr = this.setExprStack(expr); } + expr = this.setExprStack(expr); } if (hasData) { this.add(','); @@ -427,8 +427,7 @@ public class JSONWriter { hasData = true; if (!warnedNonString && !(key instanceof String)) { if (LOG.isWarnEnabled()) { - LOG.warn("JavaScript doesn't support non-String keys, using toString() on " - + key.getClass().getName()); + LOG.warn("JavaScript doesn't support non-String keys, using toString() on #0", key.getClass().getName()); } warnedNonString = true; }