-
Bug
-
Resolution: Fixed
-
P2
-
11, 13
-
b24
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8225893 | 14 | Vicente Arturo Romero Zaldivar | P2 | Resolved | Fixed | team |
javadoc crashes with an NPE if a problem is found using a reporter for an element for which javadoc cannot find the source.
java.lang.NullPointerException
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.getDiagSource(Messager.java:206)
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.printWarning(Messager.java:285)
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.print(Messager.java:128)
at demo.MyDoclet$MyScanner.scan(MyDoclet.java:78)
If I enhance my demo to catch/report the NPE and continue, I get the following, which indicates the problem occurs when given a package.
/bin/bash run-myDoclet.sh
Loading source files for package demo...
Constructing Javadoc information...
NPE for PACKAGE demo
src/demo/MyDoclet.java:15: warning - > CLASS demo.MyDoclet
src/demo/MyDoclet.java:74: warning - > > CLASS demo.MyDoclet.MyScanner
src/demo/MyDoclet.java:74: warning - > > > CONSTRUCTOR MyScanner()
src/demo/MyDoclet.java:75: warning - > > > METHOD scan(javax.lang.model.element.Element,java.lang.Integer)
src/demo/MyDoclet.java:76: warning - > > > > PARAMETER e
src/demo/MyDoclet.java:76: warning - > > > > PARAMETER depth
src/demo/MyDoclet.java:88: warning - > > CLASS demo.MyDoclet.Option
src/demo/MyDoclet.java:89: warning - > > > FIELD names
src/demo/MyDoclet.java:90: warning - > > > FIELD hasArg
src/demo/MyDoclet.java:91: warning - > > > FIELD description
src/demo/MyDoclet.java:93: warning - > > > CONSTRUCTOR Option(java.lang.String,boolean,java.lang.String)
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER names
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER hasArg
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER description
src/demo/MyDoclet.java:99: warning - > > > METHOD getArgumentCount()
src/demo/MyDoclet.java:104: warning - > > > METHOD getDescription()
src/demo/MyDoclet.java:109: warning - > > > METHOD getKind()
src/demo/MyDoclet.java:114: warning - > > > METHOD getNames()
src/demo/MyDoclet.java:119: warning - > > > METHOD getParameters()
src/demo/MyDoclet.java:15: warning - > > CONSTRUCTOR MyDoclet()
src/demo/MyDoclet.java:16: warning - > > FIELD OK
src/demo/MyDoclet.java:17: warning - > > FIELD verbose
src/demo/MyDoclet.java:18: warning - > > FIELD reporter
src/demo/MyDoclet.java:20: warning - > > FIELD options
src/demo/MyDoclet.java:44: warning - > > METHOD init(java.util.Locale,jdk.javadoc.doclet.Reporter)
src/demo/MyDoclet.java:45: warning - > > > PARAMETER locale
src/demo/MyDoclet.java:45: warning - > > > PARAMETER reporter
src/demo/MyDoclet.java:49: warning - > > METHOD getName()
src/demo/MyDoclet.java:54: warning - > > METHOD getSupportedOptions()
src/demo/MyDoclet.java:59: warning - > > METHOD getSupportedSourceVersion()
src/demo/MyDoclet.java:64: warning - > > METHOD run(jdk.javadoc.doclet.DocletEnvironment)
src/demo/MyDoclet.java:65: warning - > > > PARAMETER environment
32 warnings
java.lang.NullPointerException
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.getDiagSource(Messager.java:206)
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.printWarning(Messager.java:285)
at jdk.javadoc/jdk.javadoc.internal.tool.Messager.print(Messager.java:128)
at demo.MyDoclet$MyScanner.scan(MyDoclet.java:78)
If I enhance my demo to catch/report the NPE and continue, I get the following, which indicates the problem occurs when given a package.
/bin/bash run-myDoclet.sh
Loading source files for package demo...
Constructing Javadoc information...
NPE for PACKAGE demo
src/demo/MyDoclet.java:15: warning - > CLASS demo.MyDoclet
src/demo/MyDoclet.java:74: warning - > > CLASS demo.MyDoclet.MyScanner
src/demo/MyDoclet.java:74: warning - > > > CONSTRUCTOR MyScanner()
src/demo/MyDoclet.java:75: warning - > > > METHOD scan(javax.lang.model.element.Element,java.lang.Integer)
src/demo/MyDoclet.java:76: warning - > > > > PARAMETER e
src/demo/MyDoclet.java:76: warning - > > > > PARAMETER depth
src/demo/MyDoclet.java:88: warning - > > CLASS demo.MyDoclet.Option
src/demo/MyDoclet.java:89: warning - > > > FIELD names
src/demo/MyDoclet.java:90: warning - > > > FIELD hasArg
src/demo/MyDoclet.java:91: warning - > > > FIELD description
src/demo/MyDoclet.java:93: warning - > > > CONSTRUCTOR Option(java.lang.String,boolean,java.lang.String)
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER names
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER hasArg
src/demo/MyDoclet.java:93: warning - > > > > PARAMETER description
src/demo/MyDoclet.java:99: warning - > > > METHOD getArgumentCount()
src/demo/MyDoclet.java:104: warning - > > > METHOD getDescription()
src/demo/MyDoclet.java:109: warning - > > > METHOD getKind()
src/demo/MyDoclet.java:114: warning - > > > METHOD getNames()
src/demo/MyDoclet.java:119: warning - > > > METHOD getParameters()
src/demo/MyDoclet.java:15: warning - > > CONSTRUCTOR MyDoclet()
src/demo/MyDoclet.java:16: warning - > > FIELD OK
src/demo/MyDoclet.java:17: warning - > > FIELD verbose
src/demo/MyDoclet.java:18: warning - > > FIELD reporter
src/demo/MyDoclet.java:20: warning - > > FIELD options
src/demo/MyDoclet.java:44: warning - > > METHOD init(java.util.Locale,jdk.javadoc.doclet.Reporter)
src/demo/MyDoclet.java:45: warning - > > > PARAMETER locale
src/demo/MyDoclet.java:45: warning - > > > PARAMETER reporter
src/demo/MyDoclet.java:49: warning - > > METHOD getName()
src/demo/MyDoclet.java:54: warning - > > METHOD getSupportedOptions()
src/demo/MyDoclet.java:59: warning - > > METHOD getSupportedSourceVersion()
src/demo/MyDoclet.java:64: warning - > > METHOD run(jdk.javadoc.doclet.DocletEnvironment)
src/demo/MyDoclet.java:65: warning - > > > PARAMETER environment
32 warnings
- backported by
-
JDK-8225893 NPE in javadoc Reporter
-
- Resolved
-