-
Notifications
You must be signed in to change notification settings - Fork 117
Open
Description
Description
我们发现对于同一个测试用例,J9抛出IAE,但是Dragonwell抛出NSME。
Steps to Reproduce
>>> path_to_dragonwell-jdk8/bin/java -cp . TestLauncher
>>> path_to_dragonwell-jdk11/bin/java -cp . TestLauncher
>>> path_to_dragonwell-jdk17/bin/java -cp . TestLauncher
>>> path_to_dragonwell-jdk21/bin/java -cp . TestLauncher
>>> path_to_j9-jdk8/bin/java -cp . TestLauncher
>>> path_to_j9-jdk11/bin/java -cp . TestLauncher
>>> path_to_j9-jdk17/bin/java -cp . TestLauncher
>>> path_to_j9-jdk21/bin/java -cp . TestLauncher
实际结果:
dragonwell-jdk8:
Exception in thread "main" java.lang.IllegalAccessError: java.lang.Class
at TestLauncher.main(Unknown Source)
dragonwell-jdk11:
Exception in thread "main" java.lang.IllegalAccessError: java.lang.Class
at TestLauncher.main(Unknown Source)
dragonwell-jdk17:
Exception in thread "main" java.lang.IllegalAccessError: java.lang.Class
at TestLauncher.main(Unknown Source)
dragonwell-jdk21:
Exception in thread "main" java.lang.IllegalAccessError: java.lang.Class
at TestLauncher.main(Unknown Source)
j9-jdk8:
Exception in thread "main" java.lang.NoSuchMethodError: java/lang/Class.<init>(Ljava/lang/String;)V (loaded from D:\download\jdk\openj9\jdk-8u452-b09\jre\lib\rt.jar by <Bootstrap Loader>) called from class TestLauncher (loaded from file:/D:/Lab/TestJDoc/reduce/your_dir/ by sun.misc.Launcher$AppClassLoader@599f5fea).
at TestLauncher.main(Unknown Source)
j9-jdk11:
Exception in thread "main" java.lang.NoSuchMethodError: java/lang/Class.<init>(Ljava/lang/String;)V (loaded from jrt:/java.base by <Bootstrap Lo
ader>) called from class TestLauncher (loaded from file:/D:/Lab/TestJDoc/reduce/your_dir/ by jdk.internal.loader.ClassLoaders$AppClassLoader@a53766fe).
at TestLauncher.main(Unknown Source)
j9-jdk17:
Exception in thread "main" java.lang.NoSuchMethodError: java/lang/Class.<init>(Ljava/lang/String;)V (loaded from jrt:/java.base by <Bootstrap Loader>) called from class TestLauncher (loaded from file:/home/share/JSmith_main/your_dir/ by jdk.internal.loader.ClassLoaders$AppClassLoader@a8731894).
at TestLauncher.main(Unknown Source)
j9-jdk21:
Exception in thread "main" java.lang.NoSuchMethodError: java/lang/Class.<init>(Ljava/lang/String;)V (loaded from jrt:/java.base by <Bootstrap Loader>) called from class TestLauncher (loaded from file:/home/share/JSmith_main/your_dir/ by jdk.internal.loader.ClassLoaders$AppClassLoader@fe0d50b8).
at TestLauncher.main(Unknown Source)
Expected behavior
在基于上述结果审查 java/lang/Class 的代码后,我们发现并不存在形如 java/lang/Class.(Ljava/lang/String;)V 的构造方法。因此,Dragonwell 应抛出 NoSuchMethodError,而非 IllegalAccessError。
JDK version
openjdk version "1.8.0_462"
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition 8.26.25) (build 1.8.0_462-b01)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition 8.26.25) (build 25.462-b01, mixed mode)
openjdk version "11.0.28.24" 2025-07-15
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition)-11.0.28.24+6-GA (build 11.0.28.24+6)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition)-11.0.28.24+6-GA (build 11.0.28.24+6, mixed mode)
openjdk version "17.0.16" 2025-07-15
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition)-17.0.16.0.17+8-GA (build 17.0.16+8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition)-17.0.16.0.17+8-GA (build 17.0.16+8, mixed mode, sharing)
openjdk version "21.0.8.0.8" 2025-07-15
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition)-21.0.8.0.8+9-GA (build 21.0.8.0.8)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition)-21.0.8.0.8+9-GA (build 21.0.8.0.8, mixed mode, sharing)
OpenJ9 - 31cf5538b0
OMR - 9bcff94a2
JCL - a00de86921 based on jdk8u452-b09)
openjdk version "11.0.27" 2025-04-15
IBM Semeru Runtime Open Edition 11.0.27.0 (build 11.0.27+6)
Eclipse OpenJ9 VM 11.0.27.0 (build openj9-0.51.0, JRE 11 Windows 11 amd64-64-Bit Compressed References 20250504_1192 (JIT enabled, AOT enabled)
OpenJ9 - 31cf5538b0
OMR - 9bcff94a2
JCL - 3e17c0897e based on jdk-11.0.27+6)
Eclipse OpenJ9 VM 17.0.16.0 (build openj9-0.53.0, JRE 17 Linux amd64-64-Bit Compressed References 20250715_1115 (JIT enabled, AOT enabled)
OpenJ9 - 017819f167
OMR - 266a8c6f5
JCL - 34b4be01e57 based on jdk-17.0.16+8)
IBM Semeru Runtime Open Edition 21.0.8.0 (build 21.0.8+9-LTS)
Eclipse OpenJ9 VM 21.0.8.0 (build openj9-0.53.0, JRE 21 Linux amd64-64-Bit Compressed References 20250715_547 (JIT enabled, AOT enabled)
OpenJ9 - 017819f167
OMR - 266a8c6f5
JCL - d5f1e70d135 based on jdk-21.0.8+9)
Execution environment
OS:
Operating System Name: Linux
Operating System Architecture: amd64
Operating System Version: 4.15.0-45-generic
Metadata
Metadata
Assignees
Labels
No labels