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

Reply via email to