[ 
https://issues.apache.org/jira/browse/JEXL-207?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Henri Biestro closed JEXL-207.
------------------------------

> Inconsistent error handling
> ---------------------------
>
>                 Key: JEXL-207
>                 URL: https://issues.apache.org/jira/browse/JEXL-207
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Dmitri Blinov
>            Assignee: Henri Biestro
>            Priority: Major
>             Fix For: 3.1
>
>
> I can't figure out what is the logic behind current implementation of script 
> interruptablity/error handling.
> For example the following script will execute up to the end and return 42 in 
> any mode (strict/silent)
> {code}
> x = null.1; return 42
> {code}
> whereas the following script will break with exception "bean is null" also in 
> any mode (strict/silent)
> {code}
> null.1 = 2; return 42
> {code}
> and the following script will throw an exception in strict mode regardless of 
> being silent/non-silent
> {code}
> z = [1,2]; x = z[3]; return 42
> {code}
> The documentation states that
> {quote}
> The strict flag tells the engine when and if null as operand is considered an 
> error, the silent flag tells the engine what to do with the error (log as 
> warning or throw exception)
> {quote}
> From the first example we see that null is not considered as error when we 
> resolve bean property value, even does not log a message, while it might be 
> expected in strict mode. From the second example we see that null is always 
> considered as an error when we set bean property value, but is never ignored 
> (always breaks script execution), even in silent mode. From the third example 
> we see that AIOOBE is also considered as an error that breaks script 
> execution in strict mode, regardless of silent/non-silent mode.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to