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

Henri Biestro resolved JEXL-470.
--------------------------------
    Resolution: Fixed

Commit 
[ea2c4b85|https://github.com/apache/commons-jexl/commit/ea2c4b853a456231cd0317f5c560a6290f10c9e5]

> Fix several parser and interpreter correctness nits
> ---------------------------------------------------
>
>                 Key: JEXL-470
>                 URL: https://issues.apache.org/jira/browse/JEXL-470
>             Project: Commons JEXL
>          Issue Type: Bug
>    Affects Versions: 3.7.0
>            Reporter: Henri Biestro
>            Assignee: Henri Biestro
>            Priority: Major
>             Fix For: 3.7.1
>
>
> - Unicode escapes: \uXXXX accepted g–h / G–H as valid hex digits due to an 
> off-by-one in the range check; invalid sequences now pass through literally.
> - Safe-navigation array access: a[b]?[c] keyed the safe-navigation flag off 
> the count of ?[ tokens rather than the child index, so the wrong bracket was 
> marked. The index is now derived from the child position and saturated past 
> 64 brackets.
> - Regex escapes: regex literal bodies were processed through the 
> string-escape handler, destroying sequences like \b, \d, \w. Bodies are now 
> passed through verbatim (only \/ → / is translated); Pattern.compile failures 
> are wrapped as JexlException.Parsing; the Debugger gains a matching 
> escapeRegex round-trip inverse.
> - empty()/size() swallowing errors: in a strict engine, non-cancellation 
> errors were mapped to true/0 instead of being rethrown; JexlException.Cancel 
> was also silently swallowed in all modes.
> - switch + continue: a continue inside a switch was consumed by the switch 
> instead of propagating to the enclosing loop, contrary to Java semantics.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to