Ternary Conditional fails for Object values
-------------------------------------------

                 Key: JEXL-130
                 URL: https://issues.apache.org/jira/browse/JEXL-130
             Project: Commons JEXL
          Issue Type: Bug
    Affects Versions: 2.1
            Reporter: William Bakker


The documentation states on 
http://commons.apache.org/jexl/reference/syntax.html#Operators :

{quote}
The usual ternary conditional operator condition ? if_true : if_false operator 
can be used as well as the
abbreviation value ?: if_false which returns the value if its evaluation is 
defined, non-null and non-false
{quote}

For object values however, it seems that this definition no longer holds in 2.1 
and higher.

The following unittests run successfully in 2.0.1, but the test 
"ternaryConditional_mapContainsObject_shouldReturnObject" fails in 2.1 and 
2.1.1.

{code}
import org.apache.commons.jexl2.*;
import org.junit.*;

public class JexlTernaryConditionalTest
{
    @Test
    public void ternaryConditional_mapContainsString_shouldReturnString()
    {
        String myName = "Test.Name";
        Object myValue = "Test.Value";

        JexlEngine myJexlEngine = new JexlEngine();
        MapContext myMapContext = new MapContext();
        myMapContext.set(myName, myValue);

        Object myObjectWithTernaryConditional = 
myJexlEngine.createScript(myName + "?:null").execute(myMapContext);
        Assert.assertEquals(myValue, myObjectWithTernaryConditional);
    }

    @Test
    public void ternaryConditional_mapContainsObject_shouldReturnObject()
    {
        String myName = "Test.Name";
        Object myValue = new Object();

        JexlEngine myJexlEngine = new JexlEngine();
        MapContext myMapContext = new MapContext();
        myMapContext.set(myName, myValue);

        Object myObjectWithTernaryConditional = 
myJexlEngine.createScript(myName + "?:null").execute(myMapContext);
        Assert.assertEquals(myValue, myObjectWithTernaryConditional);
    }
}
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to