Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Duplicate
-
Affects Version/s: 2.0.17
-
Fix Version/s: None
-
Component/s: Core
-
Labels:None
-
Number of attachments :
Description
Using MVEL to set nested properties appears to be broken if the properties are null. Here's an example:
public static class User {
private Address address;
public Address getAddress()
{ return address; }public void setAddress(Address address)
{ this.address = address; }}
public static class Address {
private String city;
public String getCity()
{ return city; }public void setCity(String city)
{ this.city = city; }}
User u = new User();
Serializable expr = MVEL.compileSetExpression("address.city");
MVEL.executeSetExpression(expr, u, "Denver");
I thought that this was working in previous releases, but this now throws exceptions about null contexts and such.
Here's a stack trace:
java.lang.NullPointerException
at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeSetAccessor(ReflectiveAccessorOptimizer.java:261)
at org.mvel2.optimizers.dynamic.DynamicOptimizer.optimizeSetAccessor(DynamicOptimizer.java:72)
at org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:42)
at org.mvel2.MVEL.executeSetExpression(MVEL.java:964)