RFR: 8300207: Add a pre-check for the number of canonical equivalent permutations in j.u.r.Pattern [v2]
Raffaello Giulietti
rgiulietti at openjdk.org
Thu Jan 19 15:31:17 UTC 2023
On Tue, 17 Jan 2023 14:55:18 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:
>> Okay, I see your point and to use apiNote consistently would require "converting" some of the existing text to apiNote too.
>>
>> I'm still mulling over Pattern.compile throwing OOME. An implNote is probably the right category for this, in which case it can start with "In the the JDK Reference Implementation ...". I assume the static Pattern.matches needs same, and also Pattern.matcher for the lazy compilation case.
>
> There's no hard limit for the number of combining marks in the Unicode specification, even though in practice it never reaches the implementation limit. A high number of combining marks is thus more akin to a a resource exhaustion condition than to anything else, IMO.
>
> Even today, compilation of a pattern risks throwing an OOME anyway when trying to generate the permutations. Pre-emptively throwing an OOME just anticipates and extrapolates this behavior beyond the `int` limit of array lengths.
>
> Alternatively, compilation (greedy or lazy) could throw `PatternSyntaxException`, although there is not really something wrong with syntax.
>
> I'll add `@implNote` to the other methods you mention.
The CSR will be updated once this PR stabilizes.
-------------
PR: https://git.openjdk.org/jdk/pull/12027
More information about the core-libs-dev
mailing list