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