Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestEngine with ID 'junit-vintage' failed to discover tests due to java.lang.InternalError: Malformed class name #105

Closed
jtjeferreira opened this issue Sep 25, 2024 · 2 comments

Comments

@jtjeferreira
Copy link

As described in apache/pekko-connectors#829 (comment) I am facing the following error:

[error] org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-vintage' failed to discover tests
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:160)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverSafely(EngineDiscoveryOrchestrator.java:132)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:107)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:78)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:99)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:77)
[error] 	at org.junit.platform.launcher.core.DelegatingLauncher.discover(DelegatingLauncher.java:42)
[error] 	at org.junit.platform.launcher.core.SessionPerRequestLauncher.discover(SessionPerRequestLauncher.java:56)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests0(JupiterTestCollector.java:237)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.invokeWithCustomClassLoader(JupiterTestCollector.java:299)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests(JupiterTestCollector.java:72)
[error] 	at com.github.sbt.junit.jupiter.sbt.JupiterPlugin$.$anonfun$collectTests$1(JupiterPlugin.scala:111)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] 	at java.lang.Thread.run(Thread.java:750)
[error] Caused by: org.junit.platform.commons.JUnitException: ClassSelector [className = 'org.apache.pekko.stream.connectors.awsspi.RequestRunnerSpec$$anon$1', classLoader = java.net.URLClassLoader@79baaf07] resolution failed
[error] 	at org.junit.platform.launcher.listeners.discovery.AbortOnFailureLauncherDiscoveryListener.selectorProcessed(AbortOnFailureLauncherDiscoveryListener.java:39)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:103)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.run(EngineDiscoveryRequestResolution.java:83)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.resolve(EngineDiscoveryRequestResolver.java:113)
[error] 	at org.junit.vintage.engine.discovery.VintageDiscoverer.discover(VintageDiscoverer.java:42)
[error] 	at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:64)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:152)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverSafely(EngineDiscoveryOrchestrator.java:132)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:107)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:78)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:99)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:77)
[error] 	at org.junit.platform.launcher.core.DelegatingLauncher.discover(DelegatingLauncher.java:42)
[error] 	at org.junit.platform.launcher.core.SessionPerRequestLauncher.discover(SessionPerRequestLauncher.java:56)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests0(JupiterTestCollector.java:237)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.invokeWithCustomClassLoader(JupiterTestCollector.java:299)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests(JupiterTestCollector.java:72)
[error] 	at com.github.sbt.junit.jupiter.sbt.JupiterPlugin$.$anonfun$collectTests$1(JupiterPlugin.scala:111)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] 	at java.lang.Thread.run(Thread.java:750)
[error] Caused by: java.lang.InternalError: Malformed class name
[error] 	at java.lang.Class.getSimpleBinaryName(Class.java:1478)
[error] 	at java.lang.Class.getSimpleNameImpl(Class.java:1323)
[error] 	at java.lang.Class.getSimpleName(Class.java:1308)
[error] 	at org.junit.vintage.engine.descriptor.RunnerTestDescriptor.<init>(RunnerTestDescriptor.java:50)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.createRunnerTestDescriptor(ClassSelectorResolver.java:79)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.lambda$resolveTestClass$1(ClassSelectorResolver.java:70)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.createAndAdd(EngineDiscoveryRequestResolution.java:250)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.addToParent(EngineDiscoveryRequestResolution.java:213)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolveTestClass(ClassSelectorResolver.java:70)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolve(ClassSelectorResolver.java:47)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.lambda$resolve$2(EngineDiscoveryRequestResolution.java:135)
[error] 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
[error] 	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361)
[error] 	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
[error] 	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
[error] 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
[error] 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
[error] 	at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
[error] 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[error] 	at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:531)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:189)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:126)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:92)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.run(EngineDiscoveryRequestResolution.java:83)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.resolve(EngineDiscoveryRequestResolver.java:113)
[error] 	at org.junit.vintage.engine.discovery.VintageDiscoverer.discover(VintageDiscoverer.java:42)
[error] 	at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:64)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:152)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverSafely(EngineDiscoveryOrchestrator.java:132)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:107)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:78)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:99)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:77)
[error] 	at org.junit.platform.launcher.core.DelegatingLauncher.discover(DelegatingLauncher.java:42)
[error] 	at org.junit.platform.launcher.core.SessionPerRequestLauncher.discover(SessionPerRequestLauncher.java:56)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests0(JupiterTestCollector.java:237)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.invokeWithCustomClassLoader(JupiterTestCollector.java:299)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests(JupiterTestCollector.java:72)
[error] 	at com.github.sbt.junit.jupiter.sbt.JupiterPlugin$.$anonfun$collectTests$1(JupiterPlugin.scala:111)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] 	at java.lang.Thread.run(Thread.java:750)
[error] Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -8
[error] 	at java.lang.String.substring(String.java:1931)
[error] 	at java.lang.Class.getSimpleBinaryName(Class.java:1476)
[error] 	at java.lang.Class.getSimpleNameImpl(Class.java:1323)
[error] 	at java.lang.Class.getSimpleName(Class.java:1308)
[error] 	at org.junit.vintage.engine.descriptor.RunnerTestDescriptor.<init>(RunnerTestDescriptor.java:50)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.createRunnerTestDescriptor(ClassSelectorResolver.java:79)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.lambda$resolveTestClass$1(ClassSelectorResolver.java:70)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.createAndAdd(EngineDiscoveryRequestResolution.java:250)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution$DefaultContext.addToParent(EngineDiscoveryRequestResolution.java:213)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolveTestClass(ClassSelectorResolver.java:70)
[error] 	at org.junit.vintage.engine.discovery.ClassSelectorResolver.resolve(ClassSelectorResolver.java:47)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.lambda$resolve$2(EngineDiscoveryRequestResolution.java:135)
[error] 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
[error] 	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1361)
[error] 	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
[error] 	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
[error] 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
[error] 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
[error] 	at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
[error] 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
[error] 	at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:531)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:189)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolve(EngineDiscoveryRequestResolution.java:126)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.resolveCompletely(EngineDiscoveryRequestResolution.java:92)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.run(EngineDiscoveryRequestResolution.java:83)
[error] 	at org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.resolve(EngineDiscoveryRequestResolver.java:113)
[error] 	at org.junit.vintage.engine.discovery.VintageDiscoverer.discover(VintageDiscoverer.java:42)
[error] 	at org.junit.vintage.engine.VintageTestEngine.discover(VintageTestEngine.java:64)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrchestrator.java:152)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverSafely(EngineDiscoveryOrchestrator.java:132)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:107)
[error] 	at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discover(EngineDiscoveryOrchestrator.java:78)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:99)
[error] 	at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:77)
[error] 	at org.junit.platform.launcher.core.DelegatingLauncher.discover(DelegatingLauncher.java:42)
[error] 	at org.junit.platform.launcher.core.SessionPerRequestLauncher.discover(SessionPerRequestLauncher.java:56)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests0(JupiterTestCollector.java:237)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.invokeWithCustomClassLoader(JupiterTestCollector.java:299)
[error] 	at com.github.sbt.junit.jupiter.api.JupiterTestCollector.collectTests(JupiterTestCollector.java:72)
[error] 	at com.github.sbt.junit.jupiter.sbt.JupiterPlugin$.$anonfun$collectTests$1(JupiterPlugin.scala:111)
[error] 	at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] 	at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:63)
[error] 	at sbt.std.Transform$$anon$4.work(Transform.scala:69)
[error] 	at sbt.Execute.$anonfun$submit$2(Execute.scala:283)
[error] 	at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:24)
[error] 	at sbt.Execute.work(Execute.scala:292)
[error] 	at sbt.Execute.$anonfun$submit$1(Execute.scala:283)
[error] 	at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] 	at sbt.CompletionService$$anon$2.call(CompletionService.scala:65)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] 	at java.lang.Thread.run(Thread.java:750)
[error] (aws-spi-pekko-http / Test / definedTests) org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-vintage' failed to discover tests

The error does not happen in scala 2.12.20 or 2.13.14. It only happens in scala 3.3.3

If I understand junit-team/junit5#401 correctly I think the JUnitException is expected...

The workaround was to rewrite the code to use less inner/anonymous classes...

@jtjeferreira
Copy link
Author

Forgot to mention that it only happens in java 8. In my case it was

$ java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment Corretto-8.412.08.1 (build 1.8.0_412-b08)

@jtjeferreira
Copy link
Author

This bug was fixed in jdk 9 (see https://bugs.openjdk.org/browse/JDK-8065970)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant