RFR: JDK-8213956: javadoc crash using {@index} in doc-files file

Jonathan Gibbons jonathan.gibbons at oracle.com
Tue Nov 20 00:37:36 UTC 2018


Ooops, I forgot the links.

JBS: https://bugs.openjdk.java.net/browse/JDK-8213956
webrev: http://cr.openjdk.java.net/~jjg/8213956/webrev.00/

-- Jon


On 11/16/2018 12:10 PM, Jonathan Gibbons wrote:
>
> Please review a moderately simple fix to a javadoc crash that was 
> caused by using {@index} in an HTML file in a doc-files subdirectory.
>
> The root cause is that the standard doclet uses custom elements when 
> processing HTML files in doc-files subdirectories and any overview 
> file.  These custom elements were causing the viistUnknown to be 
> called in a visitor that is used while processing {@index} tags.  The 
> basic fix is therefore to implement visitUnknown.
>
>   * */TagletWriterImpl:/* The "hard" part of the fix was determining
>     the URL for the target of the search link, and in particular,
>     determining the path in that URL. However, once found, the
>     solution was easy: the taglet writer has access to the enclosing
>     HTML writer, which knows the file that is being written.  Since
>     this is true for the use of {@index} in the documentation for all
>     elements, we can simplify the visitor by setting the URL  outside
>     the visitor. And then, since many of the visit methods end up
>     having the same functionality as the default action (i.e. using
>     the fully qualified name of the element), we can delete those
>     overriding methods and use the defaultAction method instead.
>
>     The changes also fix another minor issue: the simple name was used
>     instead of the fully qualified name of the package for the
>     "holder" of the search item. See line 437 in the "before" version
>     of TagletWriterImpl.java
>
>   * */HTMLDoclet:/* Although the crash was in doc-files, the code
>     should support {@index} in the overview file. But for that to
>     work, the index files must be generated after the overview file
>     has been processed.
>
>   * /*DocFilesHandlerImpl:*/ Fix the reporting of the file being
>     generated: it was printing the default .toString() and not the
>     actual path of the file.
>
>   * /*New test: */the new test verifies the use of {@index} in
>     package-info.java files, files in doc-files subdirectories, and in
>     an overview file. Since {@systemProperty} is a related new
>     feature, the test also verifies the use of {@systemProperty} in
>     package-info.java and files in doc-files subdirectories. (The tag
>     is not permitted in overview files.)
>
> All javadoc tests pass; in addition, the .html files in JDK API 
> documentation are not affected by the cleanup, and compare the same, 
> before and after.
>
> -- Jon
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/javadoc-dev/attachments/20181119/0df26038/attachment.html>


More information about the javadoc-dev mailing list