EindbaasExpress / handsonscala-issuemigrator

Part of the HandsOnScala Course
0 stars 0 forks source link

IncompatibleClassChangeError with upickle 1.3.14 and 1.3.15 #112

Open EindbaasExpress opened 2 years ago

EindbaasExpress commented 2 years ago

Here is a stacktrack which running mill with upickle 1.3.15.

java.lang.IncompatibleClassChangeError: Implementing class
  java.lang.ClassLoader.defineClass1(Native Method)
  java.lang.ClassLoader.defineClass(ClassLoader.java:756)
  java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
  java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
  java.net.URLClassLoader.access$100(URLClassLoader.java:74)
  java.net.URLClassLoader$1.run(URLClassLoader.java:369)
  java.net.URLClassLoader$1.run(URLClassLoader.java:363)
  java.security.AccessController.doPrivileged(Native Method)
  java.net.URLClassLoader.findClass(URLClassLoader.java:362)
  java.lang.ClassLoader.loadClass(ClassLoader.java:418)
  sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
  java.lang.ClassLoader.loadClass(ClassLoader.java:351)
  ammonite.runtime.Storage$.<clinit>(Storage.scala:110)
  ammonite.runtime.Storage$Folder$$anon$34.apply(Storage.scala:330)
  ammonite.runtime.Storage$Folder$$anon$34.apply(Storage.scala:323)
  ammonite.interp.DependencyLoader.load(DependencyLoader.scala:32)
  ammonite.interp.Interpreter.loadIvy(Interpreter.scala:628)
  ammonite.runtime.ImportHook$BaseIvy.resolve(ImportHook.scala:191)
  mill.main.MillIvyHook$.resolve(MillIvyHook.scala:16)
  ammonite.runtime.ImportHook$BaseIvy.$anonfun$handle$7(ImportHook.scala:200)
  scala.util.Either.flatMap(Either.scala:352)
  ammonite.runtime.ImportHook$BaseIvy.handle(ImportHook.scala:199)
  ammonite.interp.Interpreter.$anonfun$resolveSingleImportHook$4(Interpreter.scala:178)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.resolveSingleImportHook(Interpreter.scala:172)
  ammonite.interp.Interpreter.$anonfun$resolveImportHooks$1(Interpreter.scala:225)
  ammonite.util.Res$.$anonfun$map$1(Res.scala:43)
  ammonite.util.Res$.$anonfun$fold$1(Res.scala:32)
  scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
  scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
  scala.collection.immutable.List.foldLeft(List.scala:79)
  ammonite.util.Res$.fold(Res.scala:30)
  ammonite.util.Res$.map(Res.scala:43)
  ammonite.interp.Interpreter.resolveImportHooks(Interpreter.scala:225)
  ammonite.interp.Interpreter.$anonfun$processAllScriptBlocks$14(Interpreter.scala:583)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processAllScriptBlocks$12(Interpreter.scala:579)
  scala.Option.getOrElse(Option.scala:201)
  ammonite.interp.Interpreter.loop$1(Interpreter.scala:579)
  ammonite.interp.Interpreter.processAllScriptBlocks(Interpreter.scala:617)
  ammonite.interp.Interpreter.$anonfun$processModule$6(Interpreter.scala:412)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.$anonfun$processModule$5(Interpreter.scala:403)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.processModule(Interpreter.scala:393)
  ammonite.interp.Interpreter.$anonfun$resolveSingleImportHook$6(Interpreter.scala:184)
  ammonite.util.Res$.$anonfun$map$1(Res.scala:43)
  ammonite.util.Res$.$anonfun$fold$1(Res.scala:32)
  scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
  scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
  scala.collection.immutable.List.foldLeft(List.scala:79)
  ammonite.util.Res$.fold(Res.scala:30)
  ammonite.util.Res$.map(Res.scala:43)
  ammonite.interp.Interpreter.$anonfun$resolveSingleImportHook$5(Interpreter.scala:181)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$resolveSingleImportHook$4(Interpreter.scala:173)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.resolveSingleImportHook(Interpreter.scala:172)
  ammonite.interp.Interpreter.$anonfun$resolveImportHooks$1(Interpreter.scala:225)
  ammonite.util.Res$.$anonfun$map$1(Res.scala:43)
  ammonite.util.Res$.$anonfun$fold$1(Res.scala:32)
  scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
  scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
  scala.collection.immutable.List.foldLeft(List.scala:79)
  ammonite.util.Res$.fold(Res.scala:30)
  ammonite.util.Res$.map(Res.scala:43)
  ammonite.interp.Interpreter.resolveImportHooks(Interpreter.scala:225)
  ammonite.interp.Interpreter.$anonfun$processAllScriptBlocks$14(Interpreter.scala:583)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.$anonfun$processAllScriptBlocks$12(Interpreter.scala:579)
  scala.Option.getOrElse(Option.scala:201)
  ammonite.interp.Interpreter.loop$1(Interpreter.scala:579)
  ammonite.interp.Interpreter.processAllScriptBlocks(Interpreter.scala:617)
  ammonite.interp.Interpreter.$anonfun$processModule$6(Interpreter.scala:412)
  ammonite.util.Catching.flatMap(Res.scala:115)
  ammonite.interp.Interpreter.$anonfun$processModule$5(Interpreter.scala:403)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  ammonite.interp.Interpreter.processModule(Interpreter.scala:393)
  mill.main.RunScript$.$anonfun$evaluateRootModule$1(RunScript.scala:94)
  ammonite.util.Res$Success.flatMap(Res.scala:62)
  mill.main.RunScript$.evaluateRootModule(RunScript.scala:87)
  mill.main.RunScript$.runScript(RunScript.scala:49)
  mill.main.MainRunner.$anonfun$runScript$1(MainRunner.scala:119)
  mill.main.MainRunner.watchLoop2(MainRunner.scala:68)
  mill.main.MainRunner.runScript(MainRunner.scala:94)
  mill.MillMain$.main0(MillMain.scala:299)
  mill.MillMain$.main(MillMain.scala:104)
  mill.MillMain.main(MillMain.scala)

How to reproduce:

This is probably because mill loads plugins via $ivy import which are build with older versions of upickle. ID: 351 Original Author: lefou