RFR: 8332614: Type-checked ConstantPool.entryByIndex and ClassReader.readEntryOrNull [v6]
David M. Lloyd
duke at openjdk.org
Thu May 30 19:47:07 UTC 2024
On Wed, 29 May 2024 19:27:17 GMT, Chen Liang <liach at openjdk.org> wrote:
>> I propose to add type-checked ConstantPool.entryByIndex and ClassReader.readEntryOrNull taking an extra Class parameter, which throws ConstantPoolException instead of ClassCastException on type mismatch, which can happen to malformed ClassFiles.
>>
>> Requesting a review from @asotona. Thanks!
>>
>> Proposal on mailing list: https://mail.openjdk.org/pipermail/classfile-api-dev/2024-May/000512.html
>
> Chen Liang 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 10 additional commits since the last revision:
>
> - Add test to validate ClassReader behavior
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/entry-by-type
> - Null-check the entry class eagerly, avoid returning null or throwing IAE
> - Remove redundant import
> - Use switch
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/entry-by-type
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/entry-by-type
> - Merge branch 'master' of https://github.com/openjdk/jdk into feature/entry-by-type
> - Use constants, beautify code
> - 8332614: Type-checked ConstantPool.entryByIndex and ClassReader.readEntryOrNull
src/java.base/share/classes/java/lang/classfile/ClassReader.java line 142:
> 140: * @throws ConstantPoolException if the index is out of range of the
> 141: * constant pool size, or zero, or the entry is not of the given type
> 142: * @since 24
I just noticed that these are marked `@since 24`. Am I correct that this should be `@since 23`?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19330#discussion_r1621350942
More information about the core-libs-dev
mailing list