Skip to content

sbt 1.12.1 brings in jline classes targetting java 22 #8689

@ludwiggj

Description

@ludwiggj

steps

Sbt version upgraded from 1.12.0 to 1.12.1. Targetted java version is 21.

problem

On running acceptance tests,

An exception or error caused a run to abort: org/jline/terminal/impl/ffm/CLibrary$termios has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 65.0
  java.lang.UnsupportedClassVersionError: org/jline/terminal/impl/ffm/CLibrary$termios has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 65.0
  at java.base/java.lang.ClassLoader.defineClass1(Native Method)
  at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1027)
  at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
  at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
  at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
  at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
  at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
  at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:580)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)

expectation

sbt 1.12.1 and 1.12.2 should inter-work with java 21.

notes

Looking at an excerpt of the dependency tree, with sbt 1.12.0:

[info]   | +-eu.timepit:refined_2.13:0.11.3 [S]
[info]   |   +-com.chuusai:shapeless_2.13:2.3.12 (evicted by: 2.3.13)
[info]   |   +-com.chuusai:shapeless_2.13:2.3.13 [S]
[info]   |   +-org.scala-lang:scala-compiler:2.13.15 (evicted by: 2.13.18)
[info]   |   +-org.scala-lang:scala-compiler:2.13.18 [S]
[info]   |   | +-io.github.java-diff-utils:java-diff-utils:4.16
[info]   |   | +-org.jline:jline:3.29.0

With sbt 1.12.1:

[info]   | +-eu.timepit:refined_2.13:0.11.3 [S]
[info]   |   +-com.chuusai:shapeless_2.13:2.3.12 (evicted by: 2.3.13)
[info]   |   +-com.chuusai:shapeless_2.13:2.3.13 [S]
[info]   |   +-org.scala-lang:scala-compiler:2.13.15 [S]
[info]   |   | +-io.github.java-diff-utils:java-diff-utils:4.12
[info]   |   | +-net.java.dev.jna:jna:5.14.0
[info]   |   | +-org.jline:jline:3.26.3

It appears that picking up the older version of jline is causing the problem, see the related jline issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions