JDK-8145722 : NullPointerException in javadoc
  • Type: Bug
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Affected Version: 8
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2015-12-18
  • Updated: 2016-04-27
  • Resolved: 2016-01-12
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 8 JDK 9
8u101Fixed 9 b102Fixed
Description
The Doclet works for large numbers of source files, but fails with below NPE when apparently unremarkable source files are included.

[javadoc] 1 error
  [javadoc] 153 warnings
  [javadoc] java.lang.NullPointerException
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap.purgeMemberLevelMap(VisibleMemberMap.java:253)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap.access$300(VisibleMemberMap.java:49)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap$ClassMembers.<init>(VisibleMemberMap.java:325)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap$ClassMembers.mapClass(VisibleMemberMap.java:350)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap$ClassMembers.mapClass(VisibleMemberMap.java:351)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap$ClassMembers.build(VisibleMemberMap.java:341)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap$ClassMembers.access$100(VisibleMemberMap.java:291)
  [javadoc] at com.sun.tools.doclets.internal.toolkit.util.VisibleMemberMap.<init>(VisibleMemberMap.java:127)
  [javadoc] at ...
Comments
Proposed change: $ hg tdiff [/w/jjg/work/dev]: [/w/jjg/work/dev/corba]: [/w/jjg/work/dev/hotspot]: [/w/jjg/work/dev/jaxp]: [/w/jjg/work/dev/jaxws]: [/w/jjg/work/dev/jdk]: [/w/jjg/work/dev/langtools]: diff -r 70fe7cf1ac65 src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java --- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java Mon Jan 11 19:32:36 2016 -0800 +++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java Tue Jan 12 14:20:29 2016 -0800 @@ -248,7 +248,7 @@ for (ProgramElementDoc element : list) { Object key = getMemberKey(element); Map<ProgramElementDoc, String> memberLevelMap = memberNameMap.get(key); - if (level.equals(memberLevelMap.get(element))) + if (memberLevelMap != null && level.equals(memberLevelMap.get(element))) memberLevelMap.remove(element); } }
12-01-2016

(The engineer who would normally handle this is on vacation.) I'll fix it in 9.
12-01-2016

This should be fixed in JDK 9 and backported.
12-01-2016