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