JDK-8177484 : The old standard doclet should be deprecated for removal.
  • Type: Bug
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2017-03-23
  • Updated: 2017-05-17
  • Resolved: 2017-03-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Fixed 9 b164Fixed
Related Reports
Blocks :  
Duplicate :  
Sub Tasks
JDK-8177548 :  
The old standard doclet is already marked @Deprecated, and superseded by a replacement as part of JEP 221.

We are retaining the standard doclet for JDK 9 because the class name has been publicly documented, and because we have reason to believe that some folk have been relying on the implementation of the standard doclet to create customized doclets. 

However, the old standard doclet is not being maintained and folk using it should convert  to using the new standard doclet.  As such, the old standard doclet should be marked @Deprecated(forRemoval=true) with the intent to remove it and all the related internal implementation classes in the next major release.
Fix Request. This is primarily a "trivial" fix to mark the old javadoc Standard Doclet for removal. (It's already deprecated.) However, because of interactions with the "bootstrap build" for JDK, we also need to change one static reference to the class into a reflective reference.

Changed "noreg-doc" to "noreg-cleanup". The definition of noreg-cleanup is: Change is a cleanup or refactoring of existing code that is covered by existing tests. which seems to be the best to apply in this case.

CCC: http://ccc.us.oracle.com/8177484

We cannot easily mark it as @Deprecated(forRemoval=true,since="9") because the enhancements to to the annotation are new in 9, and we need to be able to bootstrap the code on 8. Therefore we will have to make do with an improved comment. diff -r 54c1167ba68a src/jdk.javadoc/share/classes/com/sun/tools/doclets/standard/Standard.java --- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/standard/Standard.java Thu Mar 23 22:57:03 2017 +0000 +++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/standard/Standard.java Thu Mar 23 17:04:21 2017 -0700 @@ -32,8 +32,9 @@ * This doclet generates HTML-formatted documentation for the specified packages and types. * @deprecated The doclet has been superseded by its replacement, * {@code jdk.javadoc.doclets.StandardDoclet}. + * This class is subject to removal in a future version of Java SE. */ -@Deprecated +@Deprecated /*(forRemoval=true, since="9")*/ public class Standard { public static int optionLength(String option) {

This is simply about changing the @Deprecation annotation to @Deprecated(forRemoval=true). No functional changes are intended. There is already a basic @deprecated comment. * @deprecated The doclet has been superseded by its replacement, * {@code jdk.javadoc.doclets.StandardDoclet}.