-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Labels
Description
Reproducible with the following command in the sbt-plugin-test
directory:
> jsDependenciesTest/jsEnvInput
causes the following error:
sbt:sbt-plugin-test> jsDependenciesTest/jsEnvInput
[info] jsDependencies resolution test passed
[error] java.nio.file.InvalidPathException: Illegal char <:> at index 12: require-file:/C:/.../Temp/tmp-8249423672271761065mustache.js
[error] at com.google.common.jimfs.WindowsPathType.parsePath(WindowsPathType.java:92)
[error] at com.google.common.jimfs.PathService.parsePath(PathService.java:209)
[error] at com.google.common.jimfs.JimfsFileSystem.getPath(JimfsFileSystem.java:270)
[error] at com.google.common.jimfs.JimfsFileSystem.getPath(JimfsFileSystem.java:171)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$28(JSDependenciesPlugin.scala:409)
[error] at scala.Option.fold(Option.scala:251)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$26(JSDependenciesPlugin.scala:407)
[error] at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:238)
[error] at scala.collection.immutable.List.foreach(List.scala:392)
[error] at scala.collection.TraversableLike.map(TraversableLike.scala:238)
[error] at scala.collection.TraversableLike.map$(TraversableLike.scala:231)
[error] at scala.collection.immutable.List.map(List.scala:298)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$25(JSDependenciesPlugin.scala:404)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon$4.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (jsDependenciesTest / Compile / jsEnvInput) java.nio.file.InvalidPathException: Illegal char <:> at index 12: require-file:/C:/.../Temp/tmp-8249423672271761065mustache.js
[error] Total time: 1 s, completed 21 mai 2020 19:53:36
That's on Windows. On Linux a different error is thrown, but for essentially the same reasons:
sbt:sbt-plugin-test> jsDependenciesTest/jsEnvInput
[info] jsDependencies resolution test passed
[error] java.nio.file.NoSuchFileException: require-file:/tmp/tmp-2507161652009558960mustache.js
[error] at com.google.common.jimfs.FileTree.lookUp(FileTree.java:91)
[error] at com.google.common.jimfs.JimfsFileStore.lookUp(JimfsFileStore.java:142)
[error] at com.google.common.jimfs.FileSystemView.lookUp(FileSystemView.java:123)
[error] at com.google.common.jimfs.FileSystemView.lookUpRegularFile(FileSystemView.java:331)
[error] at com.google.common.jimfs.FileSystemView.getOrCreateRegularFile(FileSystemView.java:309)
[error] at com.google.common.jimfs.JimfsFileSystemProvider.newOutputStream(JimfsFileSystemProvider.java:209)
[error] at java.nio.file.Files.newOutputStream(Files.java:216)
[error] at java.nio.file.Files.write(Files.java:3292)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$28(JSDependenciesPlugin.scala:410)
[error] at scala.Option.fold(Option.scala:158)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$26(JSDependenciesPlugin.scala:407)
[error] at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
[error] at scala.collection.immutable.List.foreach(List.scala:388)
[error] at scala.collection.TraversableLike.map(TraversableLike.scala:233)
[error] at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
[error] at scala.collection.immutable.List.map(List.scala:294)
[error] at org.scalajs.jsdependencies.sbtplugin.JSDependenciesPlugin$.$anonfun$configSettings$25(JSDependenciesPlugin.scala:404)
[error] at scala.Function1.$anonfun$compose$1(Function1.scala:44)
[error] at sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:40)
[error] at sbt.std.Transform$$anon$4.work(System.scala:67)
[error] at sbt.Execute.$anonfun$submit$2(Execute.scala:269)
[error] at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error] at sbt.Execute.work(Execute.scala:278)
[error] at sbt.Execute.$anonfun$submit$1(Execute.scala:269)
[error] at sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:178)
[error] at sbt.CompletionService$$anon$2.call(CompletionService.scala:37)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:748)
[error] (jsDependenciesTest / Compile / jsEnvInput) java.nio.file.NoSuchFileException: require-file:/tmp/tmp-2507161652009558960mustache.js
[error] Total time: 0 s, completed May 21, 2020 7:58:14 PM
In both cases, the issue is that the following line:
Lines 409 to 410 in 1342837
Files.write(memFS.getPath(s"require-$fname"), | |
s"""$commonJSName = require("${escapeJS(fname)}");""".getBytes(StandardCharsets.UTF_8)) |
attempts to create a
Path
with an illegal file name.
This used to be fine when we had our own virtual file abstraction, whose in-memory files accepted any string as path. It's not OK anymore, now that we use Jimfs.