mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
WW-4025 Solves problem with NPE in TextParseUtil
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1460985 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -138,4 +138,22 @@ public class TextParseUtilTest extends XWorkTestCase {
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user