RFR: 8342697: Parameter arrays that are capped during annotation processing report incorrect length

Chen Liang liach at openjdk.org
Wed Oct 23 13:41:44 UTC 2024


On Wed, 23 Oct 2024 11:45:15 GMT, Nizar Benalla <nbenalla at openjdk.org> wrote:

> Can I please get a review for this change.
> Passes tier1, currently running tier 2-3.
> 
> The regression test creates temporary files in `tmpdir` to check that the warning is emitted correctly.
> I've also added the new warning to `example.not-yet.txt` as the example would require a very large file.
> 
> Here is the result of running `javap -c -p -v` on `ClassAnnotationWithLength_65536.class`  and `ClassAnnotationWithLength_65537.class` respectively. Results are the same before/after the change.
> 
> 
> static int x;
>     descriptor: I
>     flags: (0x0008) ACC_STATIC
>     RuntimeVisibleAnnotations:
>       0: #14(#15=s#16,#17=I#18,#19=[J#20])
>         CustomAnno(
>           value="custom"
>           count=42
>           arr=[-1l]
>         )
> 
> 
> 
>   static int x;
>     descriptor: I
>     flags: (0x0008) ACC_STATIC
>     RuntimeVisibleAnnotations:
>       0: #14(#15=s#16,#17=I#18,#19=[J#20,J#20])
>         CustomAnno(
>           value="custom"
>           count=42
>           arr=[-1l,-1l]
>         )
> 
> 
> TIA

test/langtools/tools/javac/annotations/ParameterArraySizeLimit.java line 121:

> 119: 
> 120:         FileWriter writer = new FileWriter(String.valueOf(out));
> 121:         BufferedWriter bufferedWriter = new BufferedWriter(writer);

This can be simplified to `Files.newBufferedWriter`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21663#discussion_r1812564387


More information about the compiler-dev mailing list