RFR: JDK-8207214: Broken links in JDK API serialized-form page.

Hannes Wallnöfer hannes.wallnoefer at oracle.com
Fri Jul 20 15:24:26 UTC 2018


Hi Jon,

I don’t quite all aspects of this fix, which is why I didn’t send a review in the first place. But since nobody else did either, I’ll just ask a few questions to help me better understand.

My main area of confusion is related to what is considered linkable and what not. This should be well-defined, but from your description below (saying this is just a partial fix) it doesn’t seem to be. Specific to your webrev, why are members of undocumented super types considered linkable?  

I also looked at the serialised form page of the current API docs and didn’t find the broken links mentioned in the JIRA issue, so I wasn’t able to observe the impact of the fix.

Apart from that, the webrev looks good to me.

Hannes


> Am 13.07.2018 um 02:16 schrieb Jonathan Gibbons <jonathan.gibbons at oracle.com>:
> 
> Please review a small but slightly tricky fix related to broken links on the serialized-form page.
> 
> The underlying problem was that the doclet was generating bad links when an @see tag
> was referencing a member that was not itself being documented. For example, the following
> will normally cause a broken link because privateMethod will not normally be included in the
> documentation.
> 
> public class C {
>   /** Text.
>     * @see #privateMethod()
>     */
>    public void publicMethod() { }
> 
>    private void privateMethod() { }
> }
> 
> 
> There is a spectrum of possible solutions, some more complicated than others.
> The approach here is to fix the perceived original intent of the code which is to detect
> when the link will not be generated, and in that case, just write the label, without
> any enclosing link.
> 
> This is done by creating and using a new method in Utils that carefully tries to determine
> whether the link should be generated. It's not ideal, and may need to be refined in due course,
> as we identify more test cases, but it is arguably "good enough" for now, in that all existing
> tests continue to pass, as well as some new test cases that mimic the problem as originally
> discovered.  It is possible that we might be able to simplify this code, in time, by using
> information in the recently-new VisibleMemberTable.
> 
> With regard to the original problem of broken links on the serialized-form page in the
> JDK API, the number of broken links has gone down by about 15%.
> 
> With respect to the webrev, there is some minor cleanup, but primarily, the expression
> on HtmlDocletWriter:916 has been replaced by a call to a new method in Utils, that
> provides a more nuanced determination of whether the link should be generated
> or not.
> 
> The new test creates various test scenarios and runs them through javadoc. It is worth
> noting that by default *all* javadoc tests using JavadocTester now run a link checker
> (checkLinks) unless it is explicitly disabled, and that ensures no regressions in the
> output generated in any other of the javadoc tests.
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8207214
> Webrev: http://cr.openjdk.java.net/~jjg/8207214/webrev.00/index.html
> 
> -- Jon
> 



More information about the javadoc-dev mailing list