JDK-4923163 : NullPointerException thrown in ClassDoc.superclassType()
  • Type: Bug
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Affected Version: 5.0
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2003-09-16
  • Updated: 2004-11-20
  • Resolved: 2003-12-29
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.
Other
5.0 betaFixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
16)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.build(Seri
alizedFormBuilder.java:101)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateOtherFiles(Abstrac
tDoclet.java:128)
 at
com.sun.tools.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java
:66)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDo
clet.java:113)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:
64)
 at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
 at com.sun.tools.doclets.standard.Standard.start(Standard.java:16)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:194)
 at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:97)
 at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:338)
 at com.sun.tools.javadoc.Start.begin(Start.java:129)
 at com.sun.tools.javadoc.Main.execute(Main.java:41)
 at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.DocletAbortException
 at
com.sun.tools.doclets.formats.html.SerializedFormWriterImpl.writeClassHeader(Ser
ializedFormWriterImpl.java:110)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
Header(SerializedFormBuilder.java:191)
 at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
SerializedForm(SerializedFormBuilder.java:185)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildPacka
geSerializedForm(SerializedFormBuilder.java:167)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedFormSummaries(SerializedFormBuilder.java:148)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedForm(SerializedFormBuilder.java:116)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.build(Seri
alizedFormBuilder.java:101)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateOtherFiles(Abstrac
tDoclet.java:128)
This happens when generating the serialized form.  For every package, we call
PackageDoc.allClasses(false) to search for serializable classes.  I put a debug
statement that prints "****FATAL <qualified class name>" to find out which
ClassDocs are causing the null pointer.  I am seeing weird names like
java.util.AbstractMap$1 and java.util.Collections$1....  I am just
trying to generate headings like "java.util.ArrayList extends AbstractList".

Examples of the null pointer are below.  You can see the full J2SE doc build log
here:

http://javaweb.sfbay/~jh104163/tmp/javadoc_logs.txt


===================================================================
Generating docs\java/lang/\ClassCircularityError.html...
Generating docs\java/lang/\ClassFormatError.html...
Generating docs\java/lang/\Error.html...
c:\j2se\src\java\lang\Error.java:83: warning - The first sentence is interpreted
to be:
"Constructs a new error with the specified cause and a detail
 message of <tt>(cause==null ? null : cause.toString())</tt> (which
 typically contains the class and detail message of <tt>cause</tt>)."
This sentence is different from what would be generated using -breakiterator:
"Constructs a new error with the specified cause and a detail
 message of <tt>(cause==null ?"
Generating docs\java/lang/\ExceptionInInitializerError.html...
Generating docs\java/lang/\IllegalAccessError.html...
Generating docs\java/lang/\IncompatibleClassChangeError.html...
Generating docs\java/lang/\InstantiationError.html...
Generating docs\java/lang/\InternalError.html...
Generating docs\java/lang/\LinkageError.html...
Generating docs\java/lang/\NoClassDefFoundError.html...
Generating docs\java/lang/\NoSuchFieldError.html...
Generating docs\java/lang/\NoSuchMethodError.html...
Generating docs\java/lang/\OutOfMemoryError.html...
Generating docs\java/lang/\StackOverflowError.html...
Generating docs\java/lang/\ThreadDeath.html...
Generating docs\java/lang/\UnknownError.html...
Generating docs\java/lang/\UnsatisfiedLinkError.html...
Generating docs\java/lang/\UnsupportedClassVersionError.html...
Generating docs\java/lang/\VerifyError.html...
Generating docs\java/lang/\VirtualMachineError.html...
Generating docs\overview-frame.html...
Generating docs\java/lang/\package-frame.html...
Generating docs\java/lang/\package-summary.html...
Generating docs\java/lang/\package-tree.html...
Generating docs\java/util/\package-frame.html...
Generating docs\java/util/\package-summary.html...
Generating docs\java/util/\package-tree.html...
Generating docs\constant-values.html...
Generating docs\serialized-form.html...
c:\j2se\src\java\lang\Enum.java:146: warning - @returns is an unknown tag.
c:\j2se\src\java\lang\Enum.java:30: warning - Tag @link: reference not found:
toString
****FATAL java.util.AbstractMap$1
java.lang.NullPointerException
 at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:57)
 at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:426)
 at
com.sun.tools.doclets.formats.html.SerializedFormWriterImpl.writeClassHeader(Ser
ializedFormWriterImpl.java:103)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
Header(SerializedFormBuilder.java:191)
 at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
SerializedForm(SerializedFormBuilder.java:185)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildPacka
geSerializedForm(SerializedFormBuilder.java:167)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedFormSummaries(SerializedFormBuilder.java:148)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedForm(SerializedFormBuilder.java:116)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.build(Seri
alizedFormBuilder.java:101)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateOtherFiles(Abstrac
tDoclet.java:128)
 at
com.sun.tools.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java
:66)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDo
clet.java:113)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:
64)
 at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
 at com.sun.tools.doclets.standard.Standard.start(Standard.java:16)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:194)
 at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:97)
 at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:338)
 at com.sun.tools.javadoc.Start.begin(Start.java:129)
 at com.sun.tools.javadoc.Main.execute(Main.java:41)
 at com.sun.tools.javadoc.Main.main(Main.java:31)
com.sun.tools.doclets.DocletAbortException
 at
com.sun.tools.doclets.formats.html.SerializedFormWriterImpl.writeClassHeader(Ser
ializedFormWriterImpl.java:110)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
Header(SerializedFormBuilder.java:191)
 at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
SerializedForm(SerializedFormBuilder.java:185)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildPacka
geSerializedForm(SerializedFormBuilder.java:167)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedFormSummaries(SerializedFormBuilder.java:148)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedForm(SerializedFormBuilder.java:116)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.build(Seri
alizedFormBuilder.java:101)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.generateOtherFiles(Abstrac
tDoclet.java:128)
 at
com.sun.tools.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java
:66)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.startGeneration(AbstractDo
clet.java:113)
 at
com.sun.tools.doclets.internal.toolkit.AbstractDoclet.start(AbstractDoclet.java:
64)
 at com.sun.tools.doclets.formats.html.HtmlDoclet.start(HtmlDoclet.java:42)
 at com.sun.tools.doclets.standard.Standard.start(Standard.java:16)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:194)
 at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:97)
 at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:338)
 at com.sun.tools.javadoc.Start.begin(Start.java:129)
 at com.sun.tools.javadoc.Main.execute(Main.java:41)
 at com.sun.tools.javadoc.Main.main(Main.java:31)
****FATAL java.util.AbstractMap$2
java.lang.NullPointerException
 at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:57)
 at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:426)
 at
com.sun.tools.doclets.formats.html.SerializedFormWriterImpl.writeClassHeader(Ser
ializedFormWriterImpl.java:103)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
Header(SerializedFormBuilder.java:191)
 at sun.reflect.GeneratedMethodAccessor119.invoke(Unknown Source)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildClass
SerializedForm(SerializedFormBuilder.java:185)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildPacka
geSerializedForm(SerializedFormBuilder.java:167)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedFormSummaries(SerializedFormBuilder.java:148)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.invokeMeth
od(SerializedFormBuilder.java:131)
 at
com.sun.tools.doclets.internal.toolkit.builders.AbstractBuilder.build(AbstractBu
ilder.java:83)
 at
com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder.buildSeria
lizedForm(SerializedFormBuilder.java:1

Comments
EVALUATION The "weird" class names indicate anonymous inner classes. There are 10 of these (AbstractMap$1 - 4 and Collections$1 - 6). Are they the only ones causing problems, or are there others? These 10 classes are returning true for isSerializable(), even though they are not serializable. And they're throwing NPE when you ask for their supertypes, as you've seen. ###@###.### 2003-09-16 Given the symbol for one of these anonymous classes, type.supertype() is returning NULL. One symptom of this is that ClassDocImpl.isSerializable() returns true when it shouldn't, and another is that ClassDocImpl.superclassType() throws NPE. It looks like the class symbol is being accessed by the doclet before being completed. How can that happen? ###@###.### 2003-09-16 I wrote a test that verifies this bug was fixed in build 24. Here is the test: import com.sun.javadoc.*; public class SuperTest extends Doclet { public static boolean start(RootDoc root) { PackageDoc[] packages = root.specifiedPackages(); for (int i =0; i < packages.length; i++) { ClassDoc[] classes = packages[i].allClasses(false); for (int j =0; j < classes.length; j++) { System.out.println("Processing " + classes[j].qualifiedName()); classes[j].superclassType(); } } return true; } } Here is the test output: /net/koori.sfbay/onestop/jdk/1.5.0/promoted/beta/b23/binaries/solaris-sparc/bin/javadoc -docletpath . -doclet SuperTest -sourcepath ~/j2se/src/share/classes/ -source 1.5 java.util Loading source files for package java.util... Constructing Javadoc information... Processing java.util.UnknownFormatFlagsException Processing java.util.UnknownFormatConversionException Processing java.util.MissingFormatWidthException Processing java.util.MissingFormatArgumentException Processing java.util.IllegalFormatWidthException Processing java.util.IllegalFormatPrecisionException Processing java.util.IllegalFormatFlagsException Processing java.util.IllegalFormatException Processing java.util.IllegalFormatConversionException Processing java.util.IllegalFormatCodePointException Processing java.util.Formatter Processing java.util.Formatter.FormatString Processing java.util.Formatter.FixedString Processing java.util.Formatter.FormatSpecifier Processing java.util.Formatter.FormatSpecifier.BigDecimalLayout Processing java.util.Formatter.FormatSpecifier.BigDecimalLayout.Form Processing java.util.Formatter.Flags Processing java.util.Formatter.Conversion Processing java.util.Formatter.DateTime Processing java.util.FormatterClosedException Processing java.util.Formattable Processing java.util.FormatFlagsConversionMismatchException Processing java.util.DuplicateFormatFlagsException Processing java.util.JumboEnumSet Processing java.util.JumboEnumSet.EnumSetIterator Processing java.util.RegularEnumSet Processing java.util.RegularEnumSet.EnumSetIterator Processing java.util.EnumSet Processing java.util.EnumSet.SerializationProxy Processing java.util.EnumMap Processing java.util.EnumMap.KeySet Processing java.util.EnumMap.Values Processing java.util.EnumMap.EntrySet Processing java.util.EnumMap.EnumMapIterator Processing java.util.EnumMap.KeyIterator Processing java.util.EnumMap.ValueIterator Processing java.util.EnumMap.EntryIterator Processing java.util.Collections$1 javadoc: In doclet class SuperTest, method start has thrown an exception java.lang.reflect.InvocationTargetEx ception java.lang.NullPointerException at com.sun.tools.javadoc.TypeMaker.getType(TypeMaker.java:59) at com.sun.tools.javadoc.ClassDocImpl.superclassType(ClassDocImpl.java:436) at SuperTest.start(SuperTest.java:12) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:209) at com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:89) at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:333) at com.sun.tools.javadoc.Start.begin(Start.java:127) at com.sun.tools.javadoc.Main.execute(Main.java:41) at com.sun.tools.javadoc.Main.main(Main.java:31) 1 error swpubs[~/garbage/nulltest]% /net/koori.sfbay/onestop/jdk/1.5.0/promoted/beta/b24/binaries/solaris-sparc/bin/javadoc -docletpath . -doclet SuperTest -sourcepath ~/j2se/src/share/classes/ -source 1.5 java.util Loading source files for package java.util... Constructing Javadoc information... Processing java.util.UnknownFormatFlagsException Processing java.util.UnknownFormatConversionException Processing java.util.MissingFormatWidthException Processing java.util.MissingFormatArgumentException Processing java.util.IllegalFormatWidthException Processing java.util.IllegalFormatPrecisionException Processing java.util.IllegalFormatFlagsException Processing java.util.IllegalFormatException Processing java.util.IllegalFormatConversionException Processing java.util.IllegalFormatCodePointException Processing java.util.Formatter Processing java.util.Formatter.FormatString Processing java.util.Formatter.FixedString Processing java.util.Formatter.FormatSpecifier Processing java.util.Formatter.FormatSpecifier.BigDecimalLayout Processing java.util.Formatter.FormatSpecifier.BigDecimalLayout.Form Processing java.util.Formatter.Flags Processing java.util.Formatter.Conversion Processing java.util.Formatter.DateTime Processing java.util.FormatterClosedException Processing java.util.Formattable Processing java.util.FormatFlagsConversionMismatchException Processing java.util.DuplicateFormatFlagsException Processing java.util.Collections$1 Processing java.util.EmptyStackException Processing java.util.IdentityHashMap Processing java.util.IdentityHashMap.IdentityHashMapIterator Processing java.util.IdentityHashMap.KeyIterator Processing java.util.IdentityHashMap.ValueIterator Processing java.util.IdentityHashMap.EntryIterator Processing java.util.IdentityHashMap.KeySet Processing java.util.IdentityHashMap.Values Processing java.util.IdentityHashMap.EntrySet Processing java.util.EventListenerProxy Processing java.util.LinkedHashMap Processing java.util.LinkedHashMap.Entry Processing java.util.LinkedHashMap.LinkedHashIterator Processing java.util.LinkedHashMap.KeyIterator Processing java.util.LinkedHashMap.ValueIterator Processing java.util.LinkedHashMap.EntryIterator Processing java.util.LinkedHashSet Processing java.util.ResourceBundleEnumeration Processing java.util.ListIterator Processing java.util.Timer$1 Processing java.util.TimerThread Processing java.util.TimerTask Processing java.util.TaskQueue Processing java.util.Timer Processing java.util.CurrencyData Processing java.util.Currency$1 Processing java.util.Currency Processing java.util.GregorianCalendar Processing java.util.Calendar Processing java.util.TimeZone$1 Processing java.util.TimeZone Processing java.util.Vector$1 Processing java.util.ListResourceBundle Processing java.util.Date Processing java.util.TreeSet Processing java.util.SortedSet Processing java.util.Arrays Processing java.util.Arrays.ArrayList Processing java.util.EventListener Processing java.util.LinkedList Processing java.util.LinkedList.ListItr Processing java.util.LinkedList.Entry Processing java.util.AbstractSequentialList Processing java.util.MissingResourceException Processing java.util.TreeMap$1 Processing java.util.WeakHashMap Processing java.util.WeakHashMap.Entry Processing java.util.WeakHashMap.HashIterator Processing java.util.WeakHashMap.ValueIterator Processing java.util.WeakHashMap.KeyIterator Processing java.util.WeakHashMap.EntryIterator Processing java.util.WeakHashMap.KeySet Processing java.util.WeakHashMap.Values Processing java.util.WeakHashMap.EntrySet Processing java.util.Random Processing java.util.Collections Processing java.util.Collections.SelfComparable Processing java.util.Collections.UnmodifiableCollection Processing java.util.Collections.UnmodifiableSet Processing java.util.Collections.UnmodifiableSortedSet Processing java.util.Collections.UnmodifiableList Processing java.util.Collections.UnmodifiableRandomAccessList Processing java.util.Collections.UnmodifiableMap Processing java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet Processing java.util.Collections.UnmodifiableMap.UnmodifiableEntrySet.UnmodifiableEntry Processing java.util.Collections.UnmodifiableSortedMap Processing java.util.Collections.SynchronizedCollection Processing java.util.Collections.SynchronizedSet Processing java.util.Collections.SynchronizedSortedSet Processing java.util.Collections.SynchronizedList Processing java.util.Collections.SynchronizedRandomAccessList Processing java.util.Collections.SynchronizedMap Processing java.util.Collections.SynchronizedSortedMap Processing java.util.Collections.CheckedCollection Processing java.util.Collections.CheckedSet Processing java.util.Collections.CheckedSortedSet Processing java.util.Collections.CheckedList Processing java.util.Collections.CheckedRandomAccessList Processing java.util.Collections.CheckedMap Processing java.util.Collections.CheckedMap.CheckedEntrySet Processing java.util.Collections.CheckedMap.CheckedEntrySet.CheckedEntry Processing java.util.Collections.CheckedSortedMap Processing java.util.Collections.EmptySet Processing java.util.Collections.EmptyList Processing java.util.Collections.EmptyMap Processing java.util.Collections.SingletonSet Processing java.util.Collections.SingletonList Processing java.util.Collections.SingletonMap Processing java.util.Collections.SingletonMap.ImmutableEntry Processing java.util.Collections.CopiesList Processing java.util.Collections.ReverseComparator Processing java.util.Collections.ReverseComparator2 Processing java.util.PropertyResourceBundle Processing java.util.ResourceBundle$1 Processing java.util.ResourceBundle Processing java.util.ResourceBundle.ResourceCacheKey Processing java.util.Locale Processing java.util.BitSet Processing java.util.StringTokenizer Processing java.util.EventObject Processing java.util.HashSet Processing java.util.AbstractSet Processing java.util.Set Processing java.util.ArrayList Processing java.util.TreeMap Processing java.util.TreeMap.SubMap Processing java.util.TreeMap.SubMap.EntrySetView Processing java.util.TreeMap.PrivateEntryIterator Processing java.util.TreeMap.EntryIterator Processing java.util.TreeMap.KeyIterator Processing java.util.TreeMap.ValueIterator Processing java.util.TreeMap.SubMapEntryIterator Processing java.util.TreeMap.Entry Processing java.util.SortedMap Processing java.util.HashMap Processing java.util.HashMap.Entry Processing java.util.HashMap.HashIterator Processing java.util.HashMap.ValueIterator Processing java.util.HashMap.KeyIterator Processing java.util.HashMap.EntryIterator Processing java.util.HashMap.KeySet Processing java.util.HashMap.Values Processing java.util.HashMap.EntrySet Processing java.util.AbstractMap Processing java.util.AbstractMap.SimpleEntry Processing java.util.Iterator Processing java.util.Enumeration Processing java.util.Stack Processing java.util.Comparator Processing java.util.Vector Processing java.util.RandomAccess Processing java.util.AbstractList Processing java.util.AbstractList.Itr Processing java.util.AbstractList.ListItr Processing java.util.List Processing java.util.AbstractCollection Processing java.util.Collection Processing java.util.Properties Processing java.util.Properties.LineReader Processing java.util.Hashtable Processing java.util.Hashtable.KeySet Processing java.util.Hashtable.EntrySet Processing java.util.Hashtable.ValueCollection Processing java.util.Hashtable.Entry Processing java.util.Hashtable.Enumerator Processing java.util.Hashtable.EmptyEnumerator Processing java.util.Hashtable.EmptyIterator Processing java.util.Map Processing java.util.Map.Entry Processing java.util.Dictionary Processing java.util.XMLUtils Processing java.util.XMLUtils.Resolver Processing java.util.XMLUtils.EH Processing java.util.UUID Processing java.util.TreeMap$3 Processing java.util.TreeMap$2 Processing java.util.TooManyListenersException Processing java.util.SubList Processing java.util.SubList$1 Processing java.util.SimpleTimeZone Processing java.util.Scanner Processing java.util.Scanner$1 Processing java.util.RegularEnumSet Processing java.util.RegularEnumSet.EnumSetIterator Processing java.util.RandomAccessSubList Processing java.util.Queue Processing java.util.PropertyPermissionCollection Processing java.util.PropertyPermission Processing java.util.PriorityQueue Processing java.util.PriorityQueue.Itr Processing java.util.Observer Processing java.util.Observable Processing java.util.NoSuchElementException Processing java.util.JumboEnumSet Processing java.util.JumboEnumSet.EnumSetIterator Processing java.util.InvalidPropertiesFormatException Processing java.util.InputMismatchException Processing java.util.EnumSet Processing java.util.EnumSet.SerializationProxy Processing java.util.EnumMap Processing java.util.EnumMap.KeySet Processing java.util.EnumMap.Values Processing java.util.EnumMap.EntrySet Processing java.util.EnumMap.EnumMapIterator Processing java.util.EnumMap.KeyIterator Processing java.util.EnumMap.ValueIterator Processing java.util.EnumMap.EntryIterator Processing java.util.ConcurrentModificationException Processing java.util.Collections$6 Processing java.util.Collections$5 Processing java.util.Collections$4 Processing java.util.Collections$3 Processing java.util.Collections$2 Processing java.util.AbstractQueue Processing java.util.AbstractMap$4 Processing java.util.AbstractMap$3 Processing java.util.AbstractMap$2 Processing java.util.AbstractMap$1 I will add this test to our regression test suite as soon as I have permission to putback. ###@###.### 2003-12-28 Due to an unrelated bug fix, classes whose names contain characters not allowed in Java identifiers are no longer "included". Thus this error is no longer encountered. The workaround in the standard doclet can probably be removed. ###@###.### 2004-01-09 Note that for a time during Tiger development, anonymous classes were named with '+' characters rather than '$'. When this change was undone, it appears that some of the old problems resurfaced. Bogus entries returned to the serialized-form.html page before Beta 2 shipped. ###@###.### 2004-11-20 05:38:38 GMT
20-11-2004

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta FIXED IN: tiger-beta INTEGRATED IN: tiger-beta
03-09-2004

PUBLIC COMMENTS Tests show this bug was fixed in build 24 so I am marking it fixed and integrated. ###@###.### 2003-12-28
28-12-2003

WORK AROUND If a class is not "included", and asking for its supertype results in NPE, then don't generate any serialization info at all for that class (assume that isSerializable() is returning bogus info) and just move on. ###@###.### 2003-09-16
16-09-2003