ADDITIONAL SYSTEM INFORMATION :
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
OS and version: Ubuntu 16.04.6 LTS
CPU model: Intel(R) Xeon(R) CPU E5-4610 v4 @ 1.80GHz
Number of CPU cores: 4CPUs, each has 10 cores
Size of physical memory: 16384 MB * 20
Inside Linux container? No
A DESCRIPTION OF THE PROBLEM :
We are doing fuzz testing on JVMs. We generated a class file with an illegal class name "L...LLLorg/apache/tools/ant/launch/Launcher;;;...;"(... indicates there are lots of L and ;) in the constant pool. According to ����4.2.1 and ����4.2.2 of The Java Language Specification, Java SE 8 Edition, it is an illegal class name. But openjdk1.8.0_232 can run it successfully while OpenJ9(1.8.0_232) openjdk9.0.4 and openjdk11.0.5 throw a ClassFormatError.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Downloadand extract it.
2. In "ant" directory, run command "java -cp ant-launcher/ org.apache.tools.ant.launch.Launcher compile jar run"
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Throw a ClassFormatError because of the illegal class name.
ACTUAL -
Run it with no error or exception.
---------- BEGIN SOURCE ----------
The class file is in, the file path is "ant-launcher/org/apache/tools/ant/launch/Launcher.class".
---------- END SOURCE ----------
FREQUENCY : always