JDK-8222255 : Javadoc fails with package annotation (error: unknown tag)
  • Type: Bug
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Affected Version: 12,13
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2019-04-03
  • Updated: 2019-05-09
  • Resolved: 2019-05-09
Related Reports
Duplicate :  
Description
A DESCRIPTION OF THE PROBLEM :
Javadoc fails when using a package annotation. It works when the package annotation is preceded by a Doc comment.


---------- BEGIN SOURCE ----------
@java.lang.Deprecated
package com.example;
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
/**
 * 
 */
@java.lang.Deprecated
package com.example;


Comments
OK, intuitive guess/assessment ... javadoc is treating the package-info.java file as though it were package.html, and is thus reading the file as though it were all a doc comment!
23-04-2019

Double curious. It looks like a doc comment has been synthesized. Here's the -doe output $ /opt/jdk/12/bin/javadoc -d play/8222255/api -sourcepath play/8222255/src -XD-doe com.example Loading source files for package com.example... Constructing Javadoc information... Standard Doclet version 12 Building tree for all the packages and classes... Generating play/8222255/api/com/example/C.html... Generating play/8222255/api/com/example/package-summary.html... play/8222255/src/com/example/package-info.java:1: error: unknown tag: java.lang.Deprecated @java.lang.Deprecated ^ java.lang.RuntimeException at jdk.compiler/com.sun.tools.javac.util.Log.writeDiagnostic(Log.java:751) at jdk.compiler/com.sun.tools.javac.util.Log$DefaultDiagnosticHandler.report(Log.java:718) at jdk.compiler/com.sun.tools.javac.util.Log.report(Log.java:678) at jdk.compiler/com.sun.tools.javac.util.AbstractLog.error(AbstractLog.java:126) at jdk.compiler/com.sun.tools.javac.api.JavacTrees.printMessage(JavacTrees.java:1155) at jdk.compiler/com.sun.tools.javac.api.JavacTrees.printMessage(JavacTrees.java:1136) at jdk.compiler/com.sun.tools.doclint.Messages.report(Messages.java:119) at jdk.compiler/com.sun.tools.doclint.Messages.error(Messages.java:97) at jdk.compiler/com.sun.tools.doclint.Checker.checkUnknownTag(Checker.java:1021) at jdk.compiler/com.sun.tools.doclint.Checker.visitUnknownBlockTag(Checker.java:1009) at jdk.compiler/com.sun.tools.doclint.Checker.visitUnknownBlockTag(Checker.java:106) at jdk.compiler/com.sun.tools.javac.tree.DCTree$DCUnknownBlockTag.accept(DCTree.java:985) at jdk.compiler/com.sun.source.util.DocTreePathScanner.scan(DocTreePathScanner.java:71) at jdk.compiler/com.sun.source.util.DocTreeScanner.scan(DocTreeScanner.java:98) at jdk.compiler/com.sun.source.util.DocTreeScanner.scanAndReduce(DocTreeScanner.java:106) at jdk.compiler/com.sun.source.util.DocTreeScanner.visitDocComment(DocTreeScanner.java:185) at jdk.compiler/com.sun.tools.doclint.Checker.visitDocComment(Checker.java:237) at jdk.compiler/com.sun.tools.doclint.Checker.visitDocComment(Checker.java:106) at jdk.compiler/com.sun.tools.javac.tree.DCTree$DCDocComment.accept(DCTree.java:138) at jdk.compiler/com.sun.source.util.DocTreePathScanner.scan(DocTreePathScanner.java:50) at jdk.compiler/com.sun.tools.doclint.Checker.scan(Checker.java:199) at jdk.compiler/com.sun.tools.doclint.DocLint.scan(DocLint.java:355) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.WorkArounds.runDocLint(WorkArounds.java:110) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getDocCommentTree0(Utils.java:3097) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getDocCommentTree(Utils.java:3144) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getBody(Utils.java:3166) at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.PackageWriterImpl.addPackageDescription(PackageWriterImpl.java:290) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.PackageSummaryBuilder.buildPackageDescription(PackageSummaryBuilder.java:280) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.PackageSummaryBuilder.buildContent(PackageSummaryBuilder.java:142) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.PackageSummaryBuilder.buildPackageDoc(PackageSummaryBuilder.java:122) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.PackageSummaryBuilder.build(PackageSummaryBuilder.java:110) at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generatePackageFiles(HtmlDoclet.java:312) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:210) at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:114) at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:72) at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:588) at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:432) at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:345) at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63) at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52) Generating play/8222255/api/com/example/package-tree.html... Generating play/8222255/api/constant-values.html... Building index for all the packages and classes... Generating play/8222255/api/overview-tree.html... Generating play/8222255/api/deprecated-list.html... Building index for all classes... Generating play/8222255/api/index-all.html... Building index for all classes... Generating play/8222255/api/allclasses-index.html... Generating play/8222255/api/allpackages-index.html... Generating play/8222255/api/index.html... Generating play/8222255/api/help-doc.html... 1 error
23-04-2019

Curious. Reproduced: $ /opt/jdk/12/bin/javadoc -d play/8222255/api -sourcepath play/8222255/src com.example Loading source files for package com.example... Constructing Javadoc information... Creating destination directory: "play/8222255/api/" Standard Doclet version 12 Building tree for all the packages and classes... Generating play/8222255/api/com/example/C.html... Generating play/8222255/api/com/example/package-summary.html... play/8222255/src/com/example/package-info.java:1: error: unknown tag: java.lang.Deprecated @java.lang.Deprecated ^ Generating play/8222255/api/com/example/package-tree.html... Generating play/8222255/api/constant-values.html... Building index for all the packages and classes... Generating play/8222255/api/overview-tree.html... Generating play/8222255/api/deprecated-list.html... Building index for all classes... Generating play/8222255/api/index-all.html... Building index for all classes... Generating play/8222255/api/allclasses-index.html... Generating play/8222255/api/allpackages-index.html... Generating play/8222255/api/index.html... Generating play/8222255/api/help-doc.html... 1 error
23-04-2019

The error message is peculiar in its own right. java.lang.Deprecated is an annotation, not a tag.
23-04-2019

This is a regression started from JDk12 b04 onwards JDK12 b03 - Pass JDK12 b04 - Fail JDK13 b15 - Fail Below is the error ./com/example/package-info.java:1: error: unknown tag: java.lang.Deprecated @java.lang.Deprecated ^ Looks like this is caused by JDK-8193462
10-04-2019