RFR: JDK-8267219: Javadoc method summary breaks when {@inheritDoc} from an empty parent [v3]

Hannes Wallnöfer hannesw at openjdk.java.net
Wed May 19 11:30:39 UTC 2021


On Wed, 19 May 2021 10:38:02 GMT, liach <github.com+7806504+liach at openjdk.org> wrote:

>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/ContentBuilder.java line 99:
>> 
>>> 97:         for (Content content: contents) {
>>> 98:             if (content.isValid())
>>> 99:                 return true;
>> 
>> If this is correct, then it deserves a comment. The reason is that it looks counterintuitive: I would expect isValid to have the semantics of &&, not ||.
>
> I looked at the usages of `isValid`; all of them are guarding the calls to `HtmlTree.add`, in `SerialFieldWriter`, `TagletWriter`, and `HtmlTree.add` itself. Hence, if a content builder has both valid and invalid parts, I still believe it should be added to the html tree, where only the valid subparts can be accepted. I shall document the reasons in an `implSpec` section.

I was initially unsure about this, too. But take a look at `HtmlTree.add(Content)` which handles `ContentBuilder` arguments in the following way:

        if (content instanceof ContentBuilder) {
            ((ContentBuilder) content).contents.forEach(this::add);
        }

Thus, if a ContentBuilder contains any valid Content objects, they will be added, while the invalid ones will be silently dropped.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4066


More information about the javadoc-dev mailing list