RFR: 8330684: ClassFile API runs into StackOverflowError while parsing certain class' bytes

Adam Sotona asotona at openjdk.org
Thu Apr 25 00:54:37 UTC 2024


On Wed, 24 Apr 2024 21:52:11 GMT, Paul Sandoz <psandoz at openjdk.org> wrote:

> Rather than duplicating some checks I wonder if it is possible to add a private method `entryByIndex(int index, int expectedTag)` that the existing `entryByIndex` defers to. If the `expectedTag` is non-negative then it checks `tag` against `expectedTag` before proceeding to the switch expression. Then the implementations of `readClassEntry` etc can be adjusted to pass along the expected tag.

Unfortunately it would have to be an expected tags list or an extra constructed bit mask, due to the multiple tags allowed for MemberRefEntry and it would slightly affect the performance. Also an additional info for the exception message would have to be passed down (or the exception would have to be re-thrown), as the tag mask is not very informative.

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

PR Comment: https://git.openjdk.org/jdk/pull/18907#issuecomment-2076114167


More information about the core-libs-dev mailing list