java-17-openjdk/JDK-8282944.patch

79 lines
2.7 KiB
Diff
Raw Permalink Normal View History

--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java
@@ -1015,6 +1015,9 @@ public class HtmlDocletWriter {
// @see reference label...
label = ref.subList(1, ref.size());
}
+ case ERRONEOUS -> {
+ return HtmlTree.SPAN(Text.of(resources.getText("doclet.tag.invalid_input", seeText)));
+ }
default ->
throw new IllegalStateException(ref.get(0).getKind().toString());
}
--- a/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
+++ b/test/langtools/jdk/javadoc/doclet/testSeeTag/TestSeeTag.java
@@ -23,15 +23,19 @@
/*
* @test
- * @bug 8017191 8182765 8200432 8239804 8250766 8262992
+ * @bug 8017191 8182765 8200432 8239804 8250766 8262992 8281944
* @summary Javadoc is confused by at-link to imported classes outside of the set of generated packages
- * @library ../../lib
+ * @library /tools/lib ../../lib
* @modules jdk.javadoc/jdk.javadoc.internal.tool
- * @build javadoc.tester.*
+ * @build toolbox.ToolBox javadoc.tester.*
* @run main TestSeeTag
*/
import javadoc.tester.JavadocTester;
+import toolbox.ToolBox;
+
+import java.io.IOException;
+import java.nio.file.Path;
public class TestSeeTag extends JavadocTester {
@@ -105,4 +109,40 @@ public class TestSeeTag extends JavadocTester {
</dd>
</dl>""");
}
+
+ ToolBox tb = new ToolBox();
+
+ @Test
+ public void testErroneous() throws IOException {
+ Path src = Path.of("erroneous", "src");
+ tb.writeJavaFiles(src, """
+ package erroneous;
+ /**
+ * Comment.
+ * @see <a href="
+ */
+ public class C {
+ private C() { }
+ }
+ """);
+
+ javadoc("-d", Path.of("erroneous", "api").toString(),
+ "-sourcepath", src.toString(),
+ "--no-platform-links",
+ "erroneous");
+ checkExit(Exit.ERROR);
+
+ checkOutput("erroneous/C.html", true,
+ """
+ <dl class="notes">
+ <dt>See Also:</dt>
+ <dd>
+ <ul class="see-list">
+ <li><span>invalid input: '&lt;a href="'</span></li>
+ </ul>
+ </dd>
+ </dl>
+ """);
+
+ }
}