Skip to content

[2.x] Compilers#toString causes sbt.internal.inc.InvalidScalaInstance: "Scala instance doesn't exist or is invalid" #1676

@eed3si9n

Description

@eed3si9n

steps

In my case I think I called LoadBuildConfiguration#toString, but likely it can be caused by Compilers#toString or ScalaInstance#actualVersion based on the stack trace.

problem

Looks like Zinc looks for https://github.com/scala/scala/blob/v2.13.18/src/compiler/scala/tools/nsc/Properties.scala.

sbt.internal.inc.InvalidScalaInstance: Scala instance doesn't exist or is invalid:
    version 3.8.2, library jars: /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala-library.jar, compiler jars: /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala3-interfaces-3.8.2.jar, /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala-library.jar, /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala3-library_3-3.8.2.jar, /Users/xxx/.sbt/boot/scala-3.8.2/lib/tasty-core_3-3.8.2.jar, /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala-asm-9.9.0-scala-1.jar, /Users/xxx/.sbt/boot/scala-3.8.2/lib/scala3-compiler_3-3.8.2.jar, other jars:
	at sbt.internal.inc.ScalaInstance$.slowActualVersion(ScalaInstance.scala:331)
	at sbt.internal.inc.ScalaInstance$.sbt$internal$inc$ScalaInstance$$$actualVersion(ScalaInstance.scala:316)
	at sbt.internal.inc.ScalaInstance.actualVersion$lzyINIT1$$anonfun$1(ScalaInstance.scala:132)
	at scala.Option.getOrElse(Option.scala:203)
	at sbt.internal.inc.ScalaInstance.actualVersion$lzyINIT1(ScalaInstance.scala:133)
	at sbt.internal.inc.ScalaInstance.actualVersion(ScalaInstance.scala:129)
	at sbt.internal.inc.AnalyzingCompiler.toString(AnalyzingCompiler.scala:390)
	at java.base/java.lang.StringConcatHelper.stringOf(StringConcatHelper.java:453)
	at xsbti.compile.Compilers.toString(Compilers.java:54)
Caused by: java.lang.ClassNotFoundException: scala.tools.nsc.Properties
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:592)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at sbt.internal.inc.ScalaInstance$.slowActualVersion(ScalaInstance.scala:324)
	... 130 more

expectation

Don't blow up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions