-
Notifications
You must be signed in to change notification settings - Fork 1k
sbt test hangs on UnsupportedClassVersionError #7429
Copy link
Copy link
Closed
Labels
Description
steps
Reproduction repository: https://github.com/gaeljw/sbt-test-hangs
- clone the repo in local
- make sure to use Java 11 (using jenv or any other way)
- run
sbt clean test
environment
sbt --version
sbt version in this project: 1.9.7
sbt script version: 1.9.4
java --version
openjdk 11.0.20 2023-07-18
OpenJDK Runtime Environment (Red_Hat-11.0.20.0.8-1.fc38) (build 11.0.20+8)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.20.0.8-1.fc38) (build 11.0.20+8, mixed mode, sharing)
problem
The commands hang forever:
sbt clean test
[info] welcome to sbt 1.9.7 (Red Hat, Inc. Java 11.0.20)
[info] loading settings for project global-plugins from plugins.sbt ...
[info] loading global plugins from /home/xxx/.sbt/1.0/plugins
[info] loading settings for project sbt-test-hangs-build from plugins.sbt ...
[info] loading project definition from /tmp/xxx/sbt-test-hangs/project
[info] loading settings for project root from build.sbt,version.sbt ...
[info] __ __
[info] \ \ ____ / /____ _ __ __
[info] \ \ / __ \ / // __ `// / / /
[info] / / / /_/ // // /_/ // /_/ /
[info] /_/ / .___//_/ \__,_/ \__, /
[info] /_/ /____/
[info]
[info] Version 2.8.20 running Java 11.0.20
[info]
[info] Play is run entirely by the community. Please consider contributing and/or donating:
[info] https://www.playframework.com/sponsors
[info]
[success] Total time: 0 s, completed 10 nov. 2023 à 13:38:32
[info] compiling 1 Scala source to /tmp/xxx/sbt-test-hangs/target/scala-2.13/test-classes ...
[error] Uncaught exception when running tests: java.lang.UnsupportedClassVersionError: au/com/dius/pact/provider/IProviderInfo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
[error] sbt.ForkMain$ForkError: java.lang.UnsupportedClassVersionError: au/com/dius/pact/provider/IProviderInfo has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
[error] at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[error] at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1022)
[error] at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
[error] at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
[error] at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
[error] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
[error] at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
[error] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
[error] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:527)
[error] at java.base/java.lang.Class.forName0(Native Method)
[error] at java.base/java.lang.Class.forName(Class.java:398)
[error] at org.scalatest.tools.Framework$ScalaTestTask.loadSuiteClass(Framework.scala:408)
[error] at org.scalatest.tools.Framework$ScalaTestTask.suiteClass$lzycompute(Framework.scala:416)
[error] at org.scalatest.tools.Framework$ScalaTestTask.suiteClass(Framework.scala:416)
[error] at org.scalatest.tools.Framework$ScalaTestTask.accessible$lzycompute(Framework.scala:417)
[error] at org.scalatest.tools.Framework$ScalaTestTask.accessible(Framework.scala:417)
[error] at org.scalatest.tools.Framework$ScalaTestTask.shouldDiscover$lzycompute(Framework.scala:420)
[error] at org.scalatest.tools.Framework$ScalaTestTask.shouldDiscover(Framework.scala:419)
[error] at org.scalatest.tools.Framework$ScalaTestRunner.$anonfun$tasks$2(Framework.scala:752)
[error] at org.scalatest.tools.Framework$ScalaTestRunner.$anonfun$tasks$2$adapted(Framework.scala:750)
[error] at scala.collection.ArrayOps$WithFilter.map(ArrayOps.scala:90)
[error] at org.scalatest.tools.Framework$ScalaTestRunner.tasks(Framework.scala:750)
[error] at sbt.ForkMain$Run.runTests(ForkMain.java:345)
[error] at sbt.ForkMain$Run.run(ForkMain.java:192)
[error] at sbt.ForkMain$Run.access$100(ForkMain.java:187)
[error] at sbt.ForkMain.main(ForkMain.java:178)
[error] at sbt.ForkMain.main(ForkMain.java:164)
Warning: Unable to read from client, please check on client for further details of the problem.
Note that I'm well aware of the runtime error due to using Java11 with class files compiled for Java 17.
My concern is that sbt process just hangs doing nothing until stopped with a Ctrl+C.
expectation
I expect the command to fail but exit.
notes
I'm not entirely sure if this is relevant but I ran VisualVM to try to see what the process was doing and the only thread doing something was the following:
Reactions are currently unavailable

