commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Biestro (JIRA)" <j...@apache.org>
Subject [jira] [Issue Comment Edited] (JEXL-113) Dot notation behaves unexpectedly with null values
Date Mon, 11 Jul 2011 12:27:59 GMT

    [ https://issues.apache.org/jira/browse/JEXL-113?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13063263#comment-13063263
] 

Henri Biestro edited comment on JEXL-113 at 7/11/11 12:27 PM:
--------------------------------------------------------------

The reason for the Set<List<String>> would be to track both 'dot' operators and
'bracketed' expressions since they dont differ in evaluation. Every 'dot' expr can be rewritten
as a 'bracketed' expr (not the opposite because of restrictions in allowed characters for
identifiers).

Anyway, reusing your example:
a + b.c + d['e']['f'] would return { {"a"}, {"b", "c"}, {"d", "e", "f"} }
However, a + b[func()] would only return { {"a"}, {"b"} }

Cheers,
Henri

      was (Author: henrib):
    The reason for the Set<List<String>> would be to track both 'dot' operators
and 'bracketed' expressions since they dont differ in evaluation. Every 'dot' expr can be
rewritten as a 'bracketed' expr (not the opposite because of restrictions in allowed characters
for identifiers).

Anyway, reusing your example:
a + b.c + d[e][f] would return { {"a"}, {"b", "c"}, {"d", "e", "f"} }
However, a + b[func()] would only return { {"a"}, {"b"} }

Cheers,
Henri
  
> Dot notation behaves unexpectedly with null values
> --------------------------------------------------
>
>                 Key: JEXL-113
>                 URL: https://issues.apache.org/jira/browse/JEXL-113
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: JDK 1.6
>            Reporter: Max Tardiveau
>
> When a variable of the form a.b is evaluated, the context is asked first for the value
of a. That value is then asked for the value of b.
> So far, so good: this is exactly what you'd expect from the dot operator.
> But if the value of b is null, the context is then asked for the value of a.b, in other
words the dot operator is ignored and "a.b" is considered to be a single variable.
> This is at best confusing. Granted, this can be avoided with the a['b'] notation, but
that's clumsy.
> I assume this is an attempt to support both the dot operator and ant-style variables.
I don't think you can have both and remain sane.
> Suggestion: either document this behavior, or make it an option. My vote would be to
just use the value returned, even if it's null. Either dot is an operator, or it's not. Perhaps
make that configurable?
> Thanks!

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message