On Fri, 9 Jan 2026 00:42:31 GMT, Alexey Semenyuk <[email protected]> wrote:

>> Replace reluctant quantifier `*?` with the possessive alternative (`*+`) and 
>> get rid of back-references from the regexp tokenizing a value of the 
>> "--arguments" option into a string array to fix the catastrophic 
>> backtracking resulting in a stack overflow.
>> 
>> Old regexp: `(?:(?:(["'])(?:\\\1|.)*?(?:\1|$))|(?:\["'\s]|[^\s]))++`
>> 
>> New regexp 
>> `(?:(?:(?:'(?:\'|[^'])*+(?:'|$))|(?:"(?:\"|[^"])*+(?:"|$)))|(?:\["'\s]|\S))++`
>> 
>> Add test cases that pass both the old and the new variants of the regexp, 
>> except for the last test case that causes a stack overflow with the old 
>> regexp.
>> 
>> The initial intention was to replace the regexp with the tokenizer function. 
>> It was abandoned in favor of reworking the regexp to minimize the risk of 
>> regressions.
>
> Alexey Semenyuk has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Remove debug output

Looks good.

-------------

Marked as reviewed by almatvee (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/29104#pullrequestreview-3641932708

Reply via email to