Henri Biestro created JEXL-470:
----------------------------------

             Summary: 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
             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