[ https://issues.apache.org/jira/browse/JEXL-130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13226118#comment-13226118 ]
Henri Biestro edited comment on JEXL-130 at 3/9/12 2:53 PM: ------------------------------------------------------------ https://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/src/main/java/org/apache/commons/jexl2/JexlArithmetic.java Committed revision 1298857. (NOT trunk BUT 2.0 branch!) was (Author: henrib): https://svn.apache.org/repos/asf/commons/proper/jexl/branches/2.0/src/main/java/org/apache/commons/jexl2/JexlArithmetic.javaCommitted revision 1298857. (NOT trunk BUT 2.0 branch!) > 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, 2.1.1 > Reporter: William Bakker > Assignee: Henri Biestro > Fix For: 2.1.2 > > > 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