File JDK-8282944.patch of Package java-17-openjdk.28214

--- 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>
+                    """);
+
+    }
 }
openSUSE Build Service is sponsored by