jdk11u-dev icon indicating copy to clipboard operation
jdk11u-dev copied to clipboard

8253700: spurious "extends Throwable" at end of Optional.orElseThrow method declaration

Open amosshi opened this issue 1 year ago • 7 comments

This is backprot for parity with 11.0.24-oracle


Backport of JDK-8253700

  • This is an unclean backport, contains two commits
  • Commit 1. is generated by git patch command, is a clean apply of the original commit
  • Commit 2. contains
    • a, Manual merge of the following .rej files
    • b. Manually fixed the TestThrows.java on Java 11 compile error, and fixed the test case to match the javadoc 11 output

.rej files

  • src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractExecutableMemberWriter.java.rej
    • This file has been manually merged into the commit 2
@@ -51,6 +51,7 @@
 import static jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl.Kind.MEMBER;
 import static jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl.Kind.MEMBER_TYPE_PARAMS;
 import static jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl.Kind.RECEIVER_TYPE;
+import static jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl.Kind.THROWS_TYPE;
 
 /**
  * Print method and constructor info.
@@ -254,19 +255,16 @@
      */
     protected Content getExceptions(ExecutableElement member) {
         List<? extends TypeMirror> exceptions = utils.asInstantiatedMethodType(typeElement, member).getThrownTypes();
-        Content htmltree = new ContentBuilder();
-        if (!exceptions.isEmpty()) {
-            Content link = writer.getLink(new LinkInfoImpl(configuration, MEMBER, exceptions.get(0)));
-            htmltree.add(link);
-            for (int i = 1; i < exceptions.size(); i++) {
-                htmltree.add(",");
-                htmltree.add(DocletConstants.NL);
-                Content exceptionLink = writer.getLink(new LinkInfoImpl(configuration, MEMBER,
-                        exceptions.get(i)));
-                htmltree.add(exceptionLink);
+        Content htmlTree = new ContentBuilder();
+        for (TypeMirror t : exceptions) {
+            if (!htmlTree.isEmpty()) {
+                htmlTree.add(",");
+                htmlTree.add(DocletConstants.NL);
             }
+            Content link = writer.getLink(new LinkInfoImpl(configuration, THROWS_TYPE, t));
+            htmlTree.add(link);
         }
-        return htmltree;
+        return htmlTree;
     }
 
     protected TypeElement implementsMethodInIntfac(ExecutableElement method,
  • src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkInfoImpl.java.rej
    • This file has been manually merged into the commit 2
@@ -208,14 +208,19 @@
         PROPERTY_COPY,
 
         /**
-         * A receiver type
+         * A receiver type.
          */
         RECEIVER_TYPE,
 
         /**
-         * A record component within a class signature
+         * A record component within a class signature.
          */
-        RECORD_COMPONENT
+        RECORD_COMPONENT,
+
+        /**
+         * A type thrown from a method.
+         */
+        THROWS_TYPE
     }
 
     public final HtmlConfiguration configuration;

Testing

  • 💚 Local: Test passed on MacOS 14.5
    • TestThrows.java: Test results: passed: 1
  • 💚 Pipeline: All checks have passed
  • 💚 Testing Machine: SAP nightlies passed on 2024-06-20
    • jtreg_langtools: jdk/javadoc/doclet/testThrows/TestThrows.java: SUCCESSFUL GitHub 📊⏲ - [3,604 msec]

Progress

  • [ ] Change must be properly reviewed (1 review required, with at least 1 Reviewer)
  • [x] Change must not contain extraneous whitespace
  • [x] Commit message must refer to an issue
  • [ ] JDK-8253700 needs maintainer approval

Issue

  • JDK-8253700: spurious "extends Throwable" at end of Optional.orElseThrow method declaration (Bug - P3)

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk11u-dev.git pull/2772/head:pull/2772
$ git checkout pull/2772

Update a local copy of the PR:
$ git checkout pull/2772
$ git pull https://git.openjdk.org/jdk11u-dev.git pull/2772/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 2772

View PR using the GUI difftool:
$ git pr show -t 2772

Using diff file

Download this PR as a diff file:
https://git.openjdk.org/jdk11u-dev/pull/2772.diff

Webrev

Link to Webrev Comment

amosshi avatar Jun 14 '24 01:06 amosshi