RFR: JDK-8213956: javadoc crash using {@index} in doc-files file
Jan Lahoda
jan.lahoda at oracle.com
Thu Nov 22 16:11:34 UTC 2018
Hi,
Looks good to me.
Jan
On 16.11.2018 21:10, 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
>
>
More information about the javadoc-dev
mailing list