[ 
https://issues.apache.org/jira/browse/JEXL-105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12973731#action_12973731
 ] 

Henri Biestro commented on JEXL-105:
------------------------------------

Thanks for the test case, bug is confirmed.
Culprit is Interpreter#visit(ASTArrayLiteral node, Object data) which 
wrongfully considers an array literal as a constant evaluation.


> Array creation 2nd time requires duplication of JexlEngine 
> -----------------------------------------------------------
>
>                 Key: JEXL-105
>                 URL: https://issues.apache.org/jira/browse/JEXL-105
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: JDK 1.6 SE on Windows XP
>            Reporter: Cary Thompson
>            Assignee: Henri Biestro
>             Fix For: 2.0.2
>
>
> JexlContext context = new MapContext();
> Expression selectExp = new JexlEngine().createExpression("[a.propA]");
> context.set("a", new A("a1", "p1"));
> System.out.println(Arrays.toString((Object[])selectExp.evaluate(context)));   
>         
> -->[p1]               
> //selectExp = new JexlEngine().createExpression("[a.propA]");
> context.set("a", new A("a2", "p2"));
> System.out.println(Arrays.toString((Object[])selectExp.evaluate(context)));   
>         
> --> [p1] correct answer should be [p2]
> // A's class definition
> public class A {
>       String nameA;
>       
>       String propA;
>       public A(String nameA, String propA) {
>               this.nameA = nameA;
>               this.propA = propA;
>       }
>       @Override
>       public String toString() {
>               return "A [nameA=" + nameA + ", propA=" + propA + "]";
>       }
>       public String getNameA() {
>               return nameA;
>       }
>       public String getPropA() {
>               return propA;
>       }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to