You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Alex Hutton (Jira)" <ji...@apache.org> on 2022/05/23 11:37:00 UTC

[jira] [Created] (JEXL-370) Cannot check if variable is defined using ObjectContext if the value is null

Alex Hutton created JEXL-370:
--------------------------------

             Summary: Cannot check if variable is defined using ObjectContext if the value is null 
                 Key: JEXL-370
                 URL: https://issues.apache.org/jira/browse/JEXL-370
             Project: Commons JEXL
          Issue Type: Bug
    Affects Versions: 3.2.1
            Reporter: Alex Hutton
         Attachments: ObjectContextTest.java

I'm migrating from 3.1 to 3.2.1, and I've noticed the following change in behaviour when using ObjectContext:
 * Calling ObjectContext.has(String) for an object which has the given property, but for which the current value is null, returns false, and not true as it did before.
 * Similarly, evaluating an expression which uses a property that is defined but which is null, throws an ('is undefined') exception rather than returning the null value.

The javadoc for JexlContext.has(String) says:

{quote}
A variable may be defined with a null value; this method checks whether the value is null or if the variable is undefined.
{quote}

so my impression is that the behaviour of ObjectContext does not match what is written in the Javadoc  for the JexlContext interface.  It is a problem in my case because the 'undefined' exception causes quite a lot of confusion in use.

I've attached a test class to demonstrate the example.  Please let me know if any extra info is needed, and thanks for all the great work on Jexl!




--
This message was sent by Atlassian Jira
(v8.20.7#820007)