Skip to content

Doctool crash on Windows when static site link target contains reserved path characters #19853

Closed
@rayrobdod

Description

@rayrobdod

Compiler version

3.3.3
3.4.0
3.4.1-RC1

Minimized code

Invoking scaladoc with scaladoc -d target -siteroot docs .

with the following file at docs\_docs\index.md

[[foo.Bar.<]]

Output (click arrow to expand)

java.nio.file.InvalidPathException: Illegal char <<> at index 8: foo.Bar.<
        at java.base/sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:204)
        at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:175)
        at java.base/sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
        at java.base/sun.nio.fs.WindowsPath.parse(WindowsPath.java:92)
        at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:231)
        at java.base/java.nio.file.Path.resolve(Path.java:516)
        at dotty.tools.scaladoc.site.StaticSiteContext.possibleLinks$1(StaticSiteContext.scala:80)
        at dotty.tools.scaladoc.site.StaticSiteContext.$anonfun$8(StaticSiteContext.scala:91)
        at scala.collection.immutable.List.flatMap(List.scala:293)
        at scala.collection.immutable.List.flatMap(List.scala:79)
        at dotty.tools.scaladoc.site.StaticSiteContext.driForLink(StaticSiteContext.scala:91)
        at dotty.tools.scaladoc.renderers.SiteRenderer.tryAsDriPlain$1(SiteRenderer.scala:37)
        at dotty.tools.scaladoc.renderers.SiteRenderer.asStaticSite$1(SiteRenderer.scala:62)
        at dotty.tools.scaladoc.renderers.SiteRenderer.processLocalLink$1$$anonfun$1(SiteRenderer.scala:71)
        at scala.Option.orElse(Option.scala:477)
        at dotty.tools.scaladoc.renderers.SiteRenderer.processLocalLink$1(SiteRenderer.scala:71)
        at dotty.tools.scaladoc.renderers.SiteRenderer.processLocalLinkWithGuard$1(SiteRenderer.scala:85)
        at dotty.tools.scaladoc.renderers.SiteRenderer.siteContent$$anonfun$2(SiteRenderer.scala:102)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at dotty.tools.scaladoc.renderers.SiteRenderer.siteContent(SiteRenderer.scala:102)
        at dotty.tools.scaladoc.renderers.SiteRenderer.siteContent$(SiteRenderer.scala:21)
        at dotty.tools.scaladoc.renderers.Renderer.siteContent(Renderer.scala:20)
        at dotty.tools.scaladoc.renderers.Renderer.renderContent(Renderer.scala:136)
        at dotty.tools.scaladoc.renderers.HtmlRenderer.pageContent(HtmlRenderer.scala:13)
        at dotty.tools.scaladoc.renderers.Renderer.renderPage(Renderer.scala:165)
        at dotty.tools.scaladoc.renderers.Renderer.$anonfun$8(Renderer.scala:153)
        at scala.collection.immutable.List.map(List.scala:250)
        at scala.collection.immutable.List.map(List.scala:79)
        at dotty.tools.scaladoc.renderers.Renderer.render(Renderer.scala:153)
        at dotty.tools.scaladoc.renderers.HtmlRenderer.render(HtmlRenderer.scala:49)
        at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:239)
        at dotty.tools.scaladoc.Scaladoc$.run$$anonfun$1(Scaladoc.scala:69)
        at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
        at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
        at scala.Option.map(Option.scala:242)
        at dotty.tools.scaladoc.Scaladoc$.run(Scaladoc.scala:73)
        at dotty.tools.scaladoc.Main.run(Main.scala:8)
        at dotty.tools.scaladoc.Main$.main(Main.scala:14)
        at dotty.tools.scaladoc.Main.main(Main.scala)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at coursier.bootstrap.launcher.a.a(Unknown Source)
        at coursier.bootstrap.launcher.Launcher.main(Unknown Source)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions