--- old/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java 2018-02-02 13:16:25.220154291 -0800 +++ new/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java 2018-02-02 13:16:24.820136776 -0800 @@ -74,12 +74,18 @@ switch (element.getKind()) { case MODULE: - location = configuration.utils.getLocationForModule((ModuleElement)element); + ModuleElement mdle = (ModuleElement)element; + location = configuration.utils.getLocationForModule(mdle); source = DocPaths.DOC_FILES; break; case PACKAGE: - location = configuration.utils.getLocationForPackage((PackageElement)element); - source = DocPath.forPackage((PackageElement)element).resolve(DocPaths.DOC_FILES); + PackageElement pkg = (PackageElement)element; + location = configuration.utils.getLocationForPackage(pkg); + // Note, given that we have a module-specific location, + // we want a module-relative path for the source, and not the + // standard path that may include the module directory + source = DocPath.create(pkg.getQualifiedName().toString().replace('.', '/')) + .resolve(DocPaths.DOC_FILES); break; default: throw new AssertionError("unsupported element " + element); @@ -103,10 +109,10 @@ DocPath path = null; switch (this.element.getKind()) { case MODULE: - path = DocPath.forModule((ModuleElement)this.element); + path = DocPaths.forModule((ModuleElement)this.element); break; case PACKAGE: - path = DocPath.forPackage((PackageElement)this.element); + path = configuration.docPaths.forPackage((PackageElement)this.element); break; default: throw new AssertionError("unknown kind:" + this.element.getKind());