Browse Source

StandardEvaluationContext.setVariable leniently ignores null name

Issue: SPR-17565
pull/2039/head
Juergen Hoeller 7 years ago
parent
commit
db63f7dd4a
  1. 17
      spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java

17
spring-expression/src/main/java/org/springframework/expression/spel/support/StandardEvaluationContext.java

@ -229,12 +229,17 @@ public class StandardEvaluationContext implements EvaluationContext { @@ -229,12 +229,17 @@ public class StandardEvaluationContext implements EvaluationContext {
}
@Override
public void setVariable(String name, @Nullable Object value) {
if (value != null) {
this.variables.put(name, value);
}
else {
this.variables.remove(name);
public void setVariable(@Nullable String name, @Nullable Object value) {
// For backwards compatibility, we ignore null names here...
// And since ConcurrentHashMap cannot store null values, we simply take null
// as a remove from the Map (with the same result from lookupVariable below).
if (name != null) {
if (value != null) {
this.variables.put(name, value);
}
else {
this.variables.remove(name);
}
}
}

Loading…
Cancel
Save