On Thu, 24 Apr 2025 14:28:21 GMT, Nizar Benalla <[email protected]> wrote:
>> Please review this patch to fix a potential infinite loop in
>> `JavadocTokenizer.ensure` when `map.length` and `size + need` approach
>> Interger.MAX_VALUE.
>>
>> While I couldn't reproduce the issue even with large inputs (~1.9GB java
>> file where almost the entire file is one javadoc comment), the fix is about
>> correctness and prevention of UB in extreme cases.
>>
>> TIA
>
> Nizar Benalla has updated the pull request with a new target base due to a
> merge or a rebase. The incremental webrev excludes the unrelated changes
> brought in by the merge/rebase. The pull request contains three additional
> commits since the last revision:
>
> - respond to feedback -- keep int[] instead of Arraylist and add check for
> grow <= 0
> - Merge branch 'master' into jd-ensure
> - fix JdT.ensure
src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavadocTokenizer.java
line 313:
> 311:
> 312: if (grow <= 0) {
> 313: throw new IndexOutOfBoundsException();
This check needs to be inside the `while` loop (see bug description).
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24620#discussion_r2058668490