-
Bug
-
Resolution: Unresolved
-
P4
-
22
-
None
Consider this trivial class:
/**
* A simple class
*/
public class A {
/**
* Very simple constructor
*
* @throws Exception {@inheritDoc}
*/
public A() throws Exception {
}
}
Running javadoc tool against it:
javadoc A.java
results in:
Loading source file A.java...
Constructing Javadoc information...
Building index for all the packages and classes...
Standard Doclet version 24+36-3646
Building tree for all the packages and classes...
Generating ./A.html...
error: An internal exception has occurred.
(java.lang.IllegalArgumentException: A(), <init>, CONSTRUCTOR, com.sun.tools.javac.code.Symbol$MethodSymbol@3d921e20)
Please file a bug against the javadoc tool via the Java bug reporting page
(https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
java.lang.IllegalArgumentException: A(), <init>, CONSTRUCTOR, com.sun.tools.javac.code.Symbol$MethodSymbol@3d921e20
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$Overrides.<init>(Utils.java:2769)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.lambda$overriddenMethods$0(Utils.java:2755)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.DocFinder.search0(DocFinder.java:107)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.DocFinder.find(DocFinder.java:76)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.expandShallowly(ThrowsTaglet.java:639)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.outputAnExceptionTagDeeply(ThrowsTaglet.java:433)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.outputAnExceptionTagDeeply(ThrowsTaglet.java:345)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.getAllBlockTagOutput0(ThrowsTaglet.java:251)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.getAllBlockTagOutput(ThrowsTaglet.java:184)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.TagletWriter.getBlockTagOutput(TagletWriter.java:265)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:396)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:382)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.addTagsInfo(HtmlDocletWriter.java:368)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.addTags(ConstructorWriter.java:246)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildTagInfo(ConstructorWriter.java:184)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildConstructorDoc(ConstructorWriter.java:120)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildDetails(ConstructorWriter.java:94)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildMemberDetails(ClassWriter.java:338)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildClassDoc(ClassWriter.java:138)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildPage(ClassWriter.java:115)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:414)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:246)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:211)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateFiles(AbstractDoclet.java:179)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateFiles(HtmlDoclet.java:345)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:82)
at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:109)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:588)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:399)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:348)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:57)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:46)
The issue is reproducible in all JDK versions starting JDK 22. It reproduces even in latest JDK 25 EA as well JDK mainline.
The javadoc tool completes successfully, with a mere warning about the class' constructor javadoc, on JDK 21 or prior versions as follows:
Loading source file A.java...
...
Standard Doclet version 21+35-2513
...
Generating ./A.html...
A.java:11: warning: @inheritDoc used but A() does not override or implement any method.
public A() throws Exception {
^
Generating ./package-summary.html...
Generating ./package-tree.html...
...
1 warning
/**
* A simple class
*/
public class A {
/**
* Very simple constructor
*
* @throws Exception {@inheritDoc}
*/
public A() throws Exception {
}
}
Running javadoc tool against it:
javadoc A.java
results in:
Loading source file A.java...
Constructing Javadoc information...
Building index for all the packages and classes...
Standard Doclet version 24+36-3646
Building tree for all the packages and classes...
Generating ./A.html...
error: An internal exception has occurred.
(java.lang.IllegalArgumentException: A(), <init>, CONSTRUCTOR, com.sun.tools.javac.code.Symbol$MethodSymbol@3d921e20)
Please file a bug against the javadoc tool via the Java bug reporting page
(https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
java.lang.IllegalArgumentException: A(), <init>, CONSTRUCTOR, com.sun.tools.javac.code.Symbol$MethodSymbol@3d921e20
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils$Overrides.<init>(Utils.java:2769)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.lambda$overriddenMethods$0(Utils.java:2755)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.DocFinder.search0(DocFinder.java:107)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.DocFinder.find(DocFinder.java:76)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.expandShallowly(ThrowsTaglet.java:639)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.outputAnExceptionTagDeeply(ThrowsTaglet.java:433)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.outputAnExceptionTagDeeply(ThrowsTaglet.java:345)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.getAllBlockTagOutput0(ThrowsTaglet.java:251)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.ThrowsTaglet.getAllBlockTagOutput(ThrowsTaglet.java:184)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.taglets.TagletWriter.getBlockTagOutput(TagletWriter.java:265)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:396)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:382)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.addTagsInfo(HtmlDocletWriter.java:368)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.addTags(ConstructorWriter.java:246)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildTagInfo(ConstructorWriter.java:184)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildConstructorDoc(ConstructorWriter.java:120)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ConstructorWriter.buildDetails(ConstructorWriter.java:94)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildMemberDetails(ClassWriter.java:338)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildClassDoc(ClassWriter.java:138)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.ClassWriter.buildPage(ClassWriter.java:115)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:414)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:246)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:211)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateFiles(AbstractDoclet.java:179)
at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateFiles(HtmlDoclet.java:345)
at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:82)
at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:109)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:588)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:399)
at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:348)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:57)
at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:46)
The issue is reproducible in all JDK versions starting JDK 22. It reproduces even in latest JDK 25 EA as well JDK mainline.
The javadoc tool completes successfully, with a mere warning about the class' constructor javadoc, on JDK 21 or prior versions as follows:
Loading source file A.java...
...
Standard Doclet version 21+35-2513
...
Generating ./A.html...
A.java:11: warning: @inheritDoc used but A() does not override or implement any method.
public A() throws Exception {
^
Generating ./package-summary.html...
Generating ./package-tree.html...
...
1 warning