[ https://issues.apache.org/jira/browse/JEXL-218?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitri Blinov closed JEXL-218. ------------------------------ Resolution: Not A Problem Fix Version/s: 3.0 This issue was resolved as bug in client code, has nothing to do with jexl, sorry. > Overloaded JexlArithmetic.empty() method is not called for a class > implementing Map interface > --------------------------------------------------------------------------------------------- > > Key: JEXL-218 > URL: https://issues.apache.org/jira/browse/JEXL-218 > Project: Commons JEXL > Issue Type: Bug > Affects Versions: 3.0 > Reporter: Dmitri Blinov > Fix For: 3.0 > > > Sorry for not providing a test case but this is a rare problem I haven't > managed to catch. I have a class which implements a {{Map}} interface and I > have an overloaded {{JexlArithmetic.empty()}} and {{JexlArithmetic.size()}} > methods for this class, and these methods are *not* related to correspondent > {{Map.isEmpty()}} and {{Map.size()}} methods, they provide separate semantics > in my case. Apart from the point that this design is questionable, most of > the time everything works as expected in jexl, i.e. when {code}empty(x){code} > or {code}size(x){code} operators are used in scripting, the overloaded > {{JexlArithmetic.empty()}} and {{JexlArithmetic.size()}} are called. But > sometimes in rare circumstances these operators are not called and > {{Map.isEmpty()}} and {{Map.size()}} methods respectively are called instead. > I suspect this has something to do with operators caching, may be you'll be > able to check the code? -- This message was sent by Atlassian JIRA (v6.3.4#6332)