Dmitri Blinov created JEXL-306:
----------------------------------

             Summary: Ternary operator ? protects also its branches from 
resolvance errors
                 Key: JEXL-306
                 URL: https://issues.apache.org/jira/browse/JEXL-306
             Project: Commons JEXL
          Issue Type: Bug
    Affects Versions: 3.1
            Reporter: Dmitri Blinov


Consider the following test case (suppose its added to IfTest)
{code:java}
    @Test
    public void testTernaryFail() throws Exception {
        JexlEvalContext jc = new JexlEvalContext();
        JexlExpression e = JEXL.createExpression("false ? bar : quux");
        Object o;

        jc.setStrict(true);
        jc.setSilent(false);
        try {
           o = e.evaluate(jc);
           Assert.fail("Should have failed");
        } catch (Exception ex) {
           // OK
        }
    }
{code}
The expected behavior is to fail with {{undefined variable...}} because neither 
{{bar}} nor {{quux}} is defined 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to