Tobias Gierke created SUREFIRE-2201: ---------------------------------------
Summary: JDK21: Crash when using new '_' wildcard preview feature in test classes Key: SUREFIRE-2201 URL: https://issues.apache.org/jira/browse/SUREFIRE-2201 Project: Maven Surefire Issue Type: Bug Reporter: Tobias Gierke Attachments: image-2023-10-11-14-43-20-661.png, jdk21-surefire-test.zip Tested with Eclipse Temurin-21+35 (build 21+35-LTS) and Maven 3.9.1 on Ubuntu 22.04.03 LTS I've attached a reproducer project, running "mvn test" will trip the crash. {code:java} [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:3.1.2:test (default-test) on project jdk21-surefire-test: [ERROR] [ERROR] Please refer to /extra/home/tobi/intellij_workspace/jdk21-surefire-test/target/surefire-reports for the individual test results. [ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream. [ERROR] There was an error in the forked process [ERROR] Illegal field name "" in class test/MainTest [ERROR] java.lang.ClassFormatError: Illegal field name "" in class test/MainTest [ERROR] at java.base/java.lang.ClassLoader.defineClass1(Native Method) [ERROR] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027) [ERROR] at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) [ERROR] at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) [ERROR] at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) [ERROR] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) [ERROR] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) [ERROR] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) [ERROR] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) [ERROR] at org.apache.maven.surefire.api.util.DefaultScanResult.loadClass(DefaultScanResult.java:115) [ERROR] at org.apache.maven.surefire.api.util.DefaultScanResult.applyFilter(DefaultScanResult.java:85) [ERROR] at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.scanClasspath(JUnitPlatformProvider.java:142) [ERROR] at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507) [ERROR] at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495) {code} What's interesting about this bug is that my reproducer project also contains a "Main" class that uses the '_' wildcard as well and compiling this one using "mvn compile" and then trying to run it using "java" directly leads to the same crash: !image-2023-10-11-14-43-20-661.png! BUT compiling the code manually using "javac" {code:java} mvn clean ; mkdir -p target/classes && javac -d target/classes --source 21 --enable-preview src/main/java/test/Main.java {code} and then running it again with "java" {code:java} java --enable-preview -cp target/classes test.Main {code} does *NOT* crash ... so this seems to be somehow related to the way Maven uses the Java compiler. Please move this issue to maven-compiler-plugin if more appropriate. -- This message was sent by Atlassian Jira (v8.20.10#820010)