Hi Henrib,

please try it with code below.

The result is:
EXPR01 result=null ## NOT OK
EXPR02 result=22 ## OK

Is anywhere available built 3.0 SNAPSHOT jar file or do I need to build it 
myself from SVN repository?

Best regards,
  Tomas

--------------------------
public class Test01 {

        private final static String SCR_INIT = "$TAB = { 1:11, 2:22, 3:33}; 
IDX=2;";
        private final static String[] SCR_FN01_PARS = { "idx" };
        private final static String SCR_FN01 = "var x = $TAB[idx]; return x;";
        private final static String SCR_EXPR01 = "fn01(IDX)";
        private final static String SCR_FN02 = "var x = $TAB[1*idx]; return x;";
        private final static String SCR_EXPR02 = "fn02(IDX)";
        
        public static void main(String[] args) {
                JexlEngine jexl = new JexlEngine();
                JexlContext jc = new MapContext();
                Script script;
                Expression expr;
                Object result;

                script = jexl.createScript(SCR_FN01, SCR_FN01_PARS);
                jc.set("fn01", script);
                script = jexl.createScript(SCR_FN02, SCR_FN01_PARS);
                jc.set("fn02", script);

                script = jexl.createScript(SCR_INIT);
                script.execute(jc);
                
                expr = jexl.createExpression(SCR_EXPR01);
                result = expr.evaluate(jc);
                System.out.print(String.format("EXPR01 result=%s\n", result));
                
                expr = jexl.createExpression(SCR_EXPR02);
                result = expr.evaluate(jc);
                System.out.print(String.format("EXPR02 result=%s\n", result));
                
        }
}

-----Original Message-----
From: henrib [mailto:[email protected]] 
Sent: Thursday, July 05, 2012 11:33 AM
To: [email protected]
Subject: Re: [jexl] Unexpected Integer -> Byte conversion

Hi Tomas,
Your previous issue (JEXL-135) has been solved in the trunk (2.1.2 and 3.0).
Not sure about this one, I can't reproduce it on the trunk using the
following test:

{code}

    public void test135() throws Exception {
        JexlEngine jexl = new JexlEngine();
        JexlContext jc = new MapContext();
        Script script;
        Object result;
        Map<Integer, Object> foo = new HashMap<Integer, Object>();
        foo.put(3, 42);
        jc.set("state", foo);

        script = jexl.createScript("var y = state[3]; y");
        result = script.execute(jc, foo);
        assertEquals(42, result);

        jc.set("a", 3);
        script = jexl.createScript("var y = state[a]; y");
        result = script.execute(jc, foo);
        assertEquals(42, result);

        jc.set("a", 2);
        script = jexl.createScript("var y = state[a + 1]; y");
        result = script.execute(jc, foo);
        assertEquals(42, result);

        jc.set("a", 2);
        jc.set("b", 1);
        script = jexl.createScript("var y = state[a + b]; y");
        result = script.execute(jc, foo);
        assertEquals(42, result);

        script = jexl.createScript("var y = state[3]; y", "state");
        result = script.execute(null, foo, 3);
        assertEquals(42, result);

        script = jexl.createScript("var y = state[a]; y", "state", "a");
        result = script.execute(null, foo, 3);
        assertEquals(42, result);

        script = jexl.createScript("var y = state[a + 1]; y", "state", "a");
        result = script.execute(null, foo, 2);
        assertEquals(42, result);

        script = jexl.createScript("var y = state[a + b]; y", "state", "a",
"b");
        result = script.execute(null, foo, 2, 1);
        assertEquals(42, result);
    }
{code}
Let me know what I'm missing.
Regards
Henrib

PS: If you are starting/evaluating to use JEXL and if you can, I'd suggest
you use the 3.0 SNAPSHOT (published a new one today).


--
View this message in context: 
http://apache-commons.680414.n4.nabble.com/jexl-Unexpected-Integer-Byte-conversion-tp4635879p4635902.html
Sent from the Commons - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to