[
https://issues.apache.org/jira/browse/SUREFIRE-2201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Osipov closed SUREFIRE-2201.
------------------------------------
Resolution: Information Provided
> 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
> Priority: Major
> 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)