RFR: 8263158: [TESTBUG] FAILED: runtime/cds/appcds/OldClassTest.java

Ioi Lam iklam at openjdk.java.net
Mon Mar 8 07:34:07 UTC 2021


On Mon, 8 Mar 2021 06:57:35 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> runtime/cds/appcds/OldClassTest.java failed due to the following reason:
>> 
>> java.lang.IllegalAccessError: superinterface check failed: class OldClassTest (in unnamed module @0x28115522) cannot access class jdk.internal.org.objectweb.asm.Opcodes (in module java.base) because module java.base does not export jdk.internal.org.objectweb.asm to unnamed module @0x28115522
>> at java.base/java.lang.ClassLoader.defineClass1(Native Method)
>> at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
>> at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
>> at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
>> at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
>> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
>> at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
>> at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
>> at java.base/java.lang.Class.forName0(Native Method)
>> at java.base/java.lang.Class.forName(Class.java:471)
>> at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:125)
>> at java.base/java.lang.Thread.run(Thread.java:831)
>> STATUS:Failed.`main' threw exception: java.lang.IllegalAccessError: superinterface check failed: class OldClassTest (in unnamed module @0x28115522) cannot access class jdk.internal.org.objectweb.asm.Opcodes (in module java.base) because module java.base does not export jdk.internal.org.objectweb.asm to unnamed module @0x28115522
>> 
>> This test case has failed on my machine for a long while, I don't see other reports on JBS nor PRs. Please let me know if I missed some stuff.
>> 
>> Thanks!
>> Yang
>
> Marked as reviewed by iklam (Reviewer).

The fix is correct. `@run driver` should be used only for those tests that are known to be very simple and can work without any special modules settings. The test should be changed to `@run main/othervm` because it relies on the `@modules java.base/jdk.internal.org.objectweb.asm` setting.

Please see my comments in https://bugs.openjdk.java.net/browse/JDK-8263158 for details.

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

PR: https://git.openjdk.java.net/jdk/pull/2866


More information about the hotspot-runtime-dev mailing list