commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitri Blinov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JEXL-207) Inconsistent error handling
Date Tue, 02 Aug 2016 16:34:20 GMT

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

Dmitri Blinov commented on JEXL-207:
------------------------------------

Do I understand that now we have three combinations of inital parameters:

* non-strict mode - errors and exceptions are ignored always silently
* strict verbose (non-silent) - errors and exceptions are breaking script execution
* strict silent - errors and exceptions are not breaking script execution but log message
is written about 

> 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
>             Fix For: 3.0.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
(v6.3.4#6332)

Mime
View raw message