diff --git a/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java b/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java index f89d7cb2..b1e41427 100644 --- a/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java +++ b/spring-binding/src/main/java/org/springframework/binding/expression/ognl/OgnlExpression.java @@ -75,13 +75,7 @@ class OgnlExpression implements Expression { public Object getValue(Object target) throws EvaluationException { Assert.notNull(target, "The target object to evaluate is required"); try { - Map context; - if (variables != null && variables.length > 0) { - context = new HashMap(variables.length); - } else { - context = Collections.EMPTY_MAP; - } - return Ognl.getValue(expression, context, target); + return Ognl.getValue(expression, getContext(), target); } catch (OgnlException e) { if (e.getReason() != null && e.getReason() != e) { // unwrap the OgnlException since the actual exception is wrapped inside it @@ -97,12 +91,20 @@ class OgnlExpression implements Expression { Assert.notNull(target, "The target object to evaluate is required"); try { // TODO context map - Ognl.setValue(expression, Collections.EMPTY_MAP, target, value); + Ognl.setValue(expression, getContext(), target, value); } catch (OgnlException e) { throw new EvaluationException(new SetValueAttempt(this, target, value), e); } } + private Map getContext() { + if (variables != null && variables.length > 0) { + return new HashMap(variables.length); + } else { + return Collections.EMPTY_MAP; + } + } + public String toString() { return expression.toString(); }