From 443ebcd3d7d1969331f78d68c171d740bdb47357 Mon Sep 17 00:00:00 2001 From: Ethan Atkins Date: Wed, 2 Sep 2020 15:27:52 -0700 Subject: [PATCH] Sanitize builder server protocol uri The lift-json project couldn't load in the community build because the generated uri contained two # identifiers. --- .../scala/sbt/internal/server/BuildServerProtocol.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala index 62d9007fd..764e936fd 100644 --- a/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala +++ b/main/src/main/scala/sbt/internal/server/BuildServerProtocol.scala @@ -368,7 +368,11 @@ object BuildServerProtocol { private def toId(ref: ProjectReference, config: Configuration): BuildTargetIdentifier = ref match { case ProjectRef(build, project) => - BuildTargetIdentifier(new URI(s"$build#$project/${config.id}")) + val sanitized = build.toString.indexOf("#") match { + case i if i > 0 => build.toString.take(i) + case _ => build.toString + } + BuildTargetIdentifier(new URI(s"$sanitized#$project/${config.id}")) case _ => sys.error(s"unexpected $ref") }