RFR: 8343427: Class file load hook crashes on archived classes from multi-release JARs [v3]
Alan Bateman
alanb at openjdk.org
Fri Nov 22 11:10:20 UTC 2024
On Thu, 21 Nov 2024 23:14:58 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
>> Currently, when retrieving a ClassFileStream during runtime, we call into the zip library to retrieve the stream based only on a class name. This doesn't work well if the class is in a multi-release jar under a versioned directory such as `META-INF/versions/9/Foo.class`. To address this issue, this change calls the java api `ClassLoader.getResourceAsStream()` to retrieve the stream.
>>
>> Passed tiers 1 - 4 testing.
>
> Calvin Cheung has updated the pull request incrementally with one additional commit since the last revision:
>
> @dholmes-ora comment
src/java.base/share/classes/java/lang/ClassLoader.java line 1689:
> 1687:
> 1688: /**
> 1689: * Called by VM for constructing a ClassFileStream.
"ClassFileStream" looks like a Java class name so might confusing readers of this code as it doesn't exist. So maybe adjust this to say that it's for reading class bytes or make it clear that it's for the C++/VM ClassFileStream.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22262#discussion_r1853744359
More information about the core-libs-dev
mailing list