-
Notifications
You must be signed in to change notification settings - Fork 21
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
Scala 2.13.14
depends on jline-3.25.1
, which contains a classfile that is not compatible with JDK17
(only JDK21
is supported)
#12994
Comments
The jline readme explains terminal support. https://github.com/jline/jline3
Three cheers for dynamic linking and virtual dispatch. The linked maven tooling issue is out of scope. |
So it means that |
I will refrain from speculation.
|
2.13.14
depends on jline-3.25.1
, which is not compatible with JDK17
(only JDK21
is supported)2.13.14
depends on jline-3.25.1
, which contains a classfile that is not compatible with JDK17
(only JDK21
is supported)
Incorrect. The class in question is never loaded on older JDKs. Scala 2.13.14, including the REPL, works just fine on JDK 8. It's only certain kinds of tooling that can become confused by the presence of the class in question. See jline/jline3#937 for full details on this. Note that Scala 2.13.15 will use JLine 3.26.1 (or higher), which has some further changes in this area (jline/jline3#949). At the time we do the 3.26.1 upgrade, I'll look at whether it would work to use the new JAR with the jdk8 classifier. Regardless, I do not believe there is any actual issue here — at least, unless some further evidence is brought to light. |
Thank you for your detailed explanation. I double check When the
which will |
@sideeffffect beat me to it and we are going this route for 2.13.16: scala/scala#10889 |
Reproduction steps
When we were preparing to upgrade the
scala version
from2.13.13
to2.13.14
in Spark, our maven pluginmaven-enforcer-plugin
found a problem, as follows:The root cause is that the class
org/jline/terminal/impl/ffm/CLibrary$termios.class
injline-3.25.1.jar
thatscala 2.13.14
depends on is compiled based on JDK21.Other classes in
jline-3.25.1.jar
seem normal, such as:Scala version: 2.13.14
Problem
Explain how the above behavior isn't what you expected.
So our
scala 2.13.14
canonly
run onJDK21
? Or is that a issue/bug ?For details of problems encountered in upgrading, please refer to:
apache/spark#46288
The text was updated successfully, but these errors were encountered: