You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2013/03/26 07:21:54 UTC
svn commit: r1460985 - in /struts/struts2/trunk/xwork-core/src:
main/java/com/opensymphony/xwork2/util/TextParseUtil.java
test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java
Author: lukaszlenart
Date: Tue Mar 26 06:21:53 2013
New Revision: 1460985
URL: http://svn.apache.org/r1460985
Log:
WW-4025 Solves problem with NPE in TextParseUtil
Modified:
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java
Modified: struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java?rev=1460985&r1=1460984&r2=1460985&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java (original)
+++ struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/TextParseUtil.java Tue Mar 26 06:21:53 2013
@@ -153,18 +153,16 @@ public class TextParseUtil {
*/
public static Object translateVariables(char[] openChars, String expression, final ValueStack stack, final Class asType, final ParsedValueEvaluator evaluator, int maxLoopCount) {
-
ParsedValueEvaluator ognlEval = new ParsedValueEvaluator() {
public Object evaluate(String parsedValue) {
Object o = stack.findValue(parsedValue, asType);
- if (evaluator != null) {
+ if (evaluator != null && o != null) {
o = evaluator.evaluate(o.toString());
}
return o;
}
};
-
TextParser parser = ((Container)stack.getContext().get(ActionContext.CONTAINER)).getInstance(TextParser.class);
XWorkConverter conv = ((Container)stack.getContext().get(ActionContext.CONTAINER)).getInstance(XWorkConverter.class);
Modified: struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java?rev=1460985&r1=1460984&r2=1460985&view=diff
==============================================================================
--- struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java (original)
+++ struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/TextParseUtilTest.java Tue Mar 26 06:21:53 2013
@@ -138,4 +138,22 @@ public class TextParseUtilTest extends X
assertEquals("foo: 2", s);
}
+ public void testTranslateVariablesWithNull() {
+ // given
+ ValueStack stack = ActionContext.getContext().getValueStack();
+ stack.push(new HashMap<String, Object>() {{ put("foo", null); }});
+
+ TextParseUtil.ParsedValueEvaluator evaluator = new TextParseUtil.ParsedValueEvaluator() {
+ public Object evaluate(String parsedValue) {
+ return parsedValue;
+ }
+ };
+
+ // when
+ Object s = TextParseUtil.translateVariables('$', "foo: ${foo}", stack, String.class, evaluator, 2);
+
+ // then
+ assertEquals("foo: ", s);
+ }
+
}