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