On Wed, 30 Jun 2021 16:03:02 GMT, Jonathan Gibbons <j...@openjdk.org> wrote:
>> (This jdk17 PR is the continuation of PR openjdk/jdk#4459 in the mainline >> jdk repo, commits are identical at the point of transition.) >> >> This change fixes a whole slew of shortcomings in the redirection of >> relative links in doc comments. The basic idea is that relative links are >> authored to work in their "native primary" environment (e.g. the package >> summary page for a package or the class page for a class and its members), >> and have to be rewritten when used in other contexts such as "use" or index >> pages. >> >> A list of omissions that are fixed in this change: >> >> - Relative links in class or member comments were not redirected when >> inherited by other classes >> - Relative links in package comments were not rewritten when displayed in >> other package summaries as "related packages" >> - Fragment links used in foreign contexts were not completed with the file >> name >> - Relative links in module comments were not redirected at all >> >> While fixing above issues I also made sure link rewriting is kept to a >> minimum, avoiding it as much as possible for elements that live in the same >> package. >> >> Furthermore, the test for redirected relative links was a bit out of order. >> The `javadoc` command issued by the test returned `ERROR` because one of the >> source files contained non-valid HTML (an anchor with a `name` attribute to >> test whether that attribute would be modified). Because of this, the >> `checkLinks()` method was never invoked, which is a problem for a test that >> is supposed to make sure generated links are valid. I changed the test to >> use the valid `id` attribute instead of `name` and made sure `checkLinks()` >> is executed again. >> >> I also added checks for the newly supported cases. I added a whole new test >> for modules since retrofitting the existing test to cover modules would not >> have been practical. > > src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java > line 1664: > >> 1662: currentPageElement = moduleWriter.mdle; >> 1663: } >> 1664: } > > File an RFE? I actually considered changing it as part of this change, but decided it wasn't worth changing several unrelated usages of the methods. In the end it's not a problem, except that the method name suggest it would also return package and module elements. Maybe we should just rename the method to `getCurrentTypeElement` to better represent its behaviour. ------------- PR: https://git.openjdk.java.net/jdk17/pull/17