[
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)