RFR: 8339190: Parameter arrays that are capped during annotation processing report incorrect length [v2]
Nizar Benalla
nbenalla at openjdk.org
Wed Oct 23 18:20:06 UTC 2024
On Wed, 23 Oct 2024 14:31:49 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
>
> Nizar Benalla has updated the pull request incrementally with one additional commit since the last revision:
>
> - remove unused import
> - realized I need to change the condition in my for loop
I will update this PR and the CSR to fail if we detect an overflow, rather than warn users. Thanks Jan
Though I am not sure why the check would need to be done when writing the classfile, why not do it earlier?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21663#issuecomment-2433059785
More information about the compiler-dev
mailing list