diff --git a/frontend/src/main/scala/bloop/dap/BloopDebugToolsResolver.scala b/frontend/src/main/scala/bloop/dap/BloopDebugToolsResolver.scala index 75fa303592..237f56a73f 100644 --- a/frontend/src/main/scala/bloop/dap/BloopDebugToolsResolver.scala +++ b/frontend/src/main/scala/bloop/dap/BloopDebugToolsResolver.scala @@ -1,6 +1,7 @@ package bloop.dap import java.net.URLClassLoader +import java.nio.file.Path import scala.collection.mutable import scala.util.Success @@ -34,13 +35,13 @@ class BloopDebugToolsResolver(logger: Logger) extends DebugToolsResolver { } } - override def resolveDecoder(scalaVersion: ScalaVersion): Try[ClassLoader] = { + override def resolveDecoder(scalaVersion: ScalaVersion): Try[Seq[Path]] = { getOrTryUpdate(decoderCache, scalaVersion) { val decoderModule = s"${BuildInfo.decoderName}_${scalaVersion.binaryVersion}" val artifact = Artifact(BuildInfo.organization, decoderModule, BuildInfo.version) DependencyResolution .resolveWithErrors(List(artifact), logger) - .map(jars => toClassLoader(jars, true)) + .map(_.map(_.underlying).toSeq) .toTry } } @@ -50,10 +51,10 @@ class BloopDebugToolsResolver(logger: Logger) extends DebugToolsResolver { new URLClassLoader(jars.map(_.underlying.toUri.toURL), null) } - private def getOrTryUpdate( - cache: mutable.Map[ScalaVersion, ClassLoader], + private def getOrTryUpdate[T]( + cache: mutable.Map[ScalaVersion, T], scalaVersion: ScalaVersion - )(resolve: => Try[ClassLoader]): Try[ClassLoader] = { + )(resolve: => Try[T]): Try[T] = { if (cache.contains(scalaVersion)) Success(cache(scalaVersion)) else resolve.map { classLoader => @@ -65,5 +66,5 @@ class BloopDebugToolsResolver(logger: Logger) extends DebugToolsResolver { object BloopDebugToolsResolver { private val expressionCompilerCache: mutable.Map[ScalaVersion, ClassLoader] = mutable.Map.empty - private val decoderCache: mutable.Map[ScalaVersion, ClassLoader] = mutable.Map.empty + private val decoderCache: mutable.Map[ScalaVersion, Seq[Path]] = mutable.Map.empty } diff --git a/project/Dependencies.scala b/project/Dependencies.scala index fe79825cf0..beae5d8dd0 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -46,7 +46,7 @@ object Dependencies { val asmVersion = "9.7" val snailgunVersion = "0.4.0" val ztExecVersion = "1.12" - val debugAdapterVersion = "4.1.1" + val debugAdapterVersion = "4.2.0" val bloopConfigVersion = "2.0.2" val semanticdbVersion = "4.8.15" val zinc = "org.scala-sbt" %% "zinc" % zincVersion