On Mon, 17 May 2021 17:39:19 GMT, liach <github.com+7806504+li...@openjdk.org> 
wrote:

>> This change fixes when a method body has only inline tags that produce no 
>> output, the method summary will get eaten.
>> 
>> This change allows `{@inheritDoc}` from empty parents to go through the code 
>> path used by `-nocomment` and properly generate tables.
>> 
>> All `jtreg:test/langtools/jdk/javadoc/doclet` tests pass.
>
> liach has refreshed the contents of this pull request, and previous commits 
> have been removed. The incremental views will show differences compared to 
> the previous content of the PR.

Thanks for looking into this and doing all the detective work, @liach! 

Your fix is a viable workaround, but I think we must fix the problem in 
`Table.java`, which is caused by the maybe surprising behaviour of `isEmpty()` 
and `isValid()` in `HtmlTree`. At least I find it surprising that a `<div>` 
with attributes but no content is considered empty but not valid. 

But regardless of this question, the only safe fix is to replace the 
`!isEmpty()` check in line 331 of `Table.java` with an `isValid()` check. It's 
a bit counter-intuitive that a div with an attribute and no content will be 
"lost" in the process,  and maybe the implementation of `HtmlTree.isValid()` 
should be changed to consider that as valid. But the important thing is to make 
the `Table` class safe against similar problems in the future.

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

Changes requested by hannesw (Reviewer).

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

Reply via email to