JDK-8369613 : java.lang.NPE: Cannot invoke "com.sun.source.util.DocTreePath.getTreePath()"
  • Type: Bug
  • Component: tools
  • Sub-Component: javadoc(tool)
  • Affected Version: 17
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • OS: linux_ubuntu
  • CPU: x86_64
  • Submitted: 2025-10-09
  • Updated: 2025-12-23
Description
ADDITIONAL SYSTEM INFORMATION :
$ ./mvnw --version
Apache Maven 3.9.11 (3e54c93a704957b63ee3494413a2b544fd3d825b)
Maven home: /home/user/m2/wrapper/dists/apache-maven-3.9.11/a2d47e15
Java version: 17.0.12, vendor: Oracle Corporation, runtime: /home/user/jdk-17.0.12
Default locale: de_DE, platform encoding: UTF-8
OS name: "linux", version: "6.8.0-85-generic", arch: "amd64", family: "unix"


A DESCRIPTION OF THE PROBLEM :
Javadoc cannot be generated with newer JDKs, JDK8 worked fine:
java.lang.NullPointerException: Cannot invoke "com.sun.source.util.DocTreePath.getTreePath()" because "path" is null

There used to be a different bugfix for above error message, but it does not seem to solve the issue I'm running into.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
git clone https://github.com/apache/creadur-rat.git
cd creadur-rat
./mvnw javadoc:javadoc

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Javadoc generation should happen as it did in other releases
ACTUAL -
[ERROR] error: An internal exception has occurred. 
[ERROR]   	(java.lang.NullPointerException: Cannot invoke "com.sun.source.util.DocTreePath.getTreePath()" because "path" is null)
[ERROR] Please file a bug against the javadoc tool via the Java bug reporting page
[ERROR] (https://bugreport.java.com) after checking the Bug Database (https://bugs.java.com)
[ERROR] for duplicates. Include error messages and the following diagnostic in your report. Thank you.
[ERROR] java.lang.NullPointerException: Cannot invoke "com.sun.source.util.DocTreePath.getTreePath()" because "path" is null
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.JavadocLog.getDiagnosticSource(JavadocLog.java:618)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.JavadocLog.print(JavadocLog.java:245)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.Messages.report(Messages.java:187)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.Messages.warning(Messages.java:133)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.seeTagToContent(HtmlDocletWriter.java:1068)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter$2.visitLink(HtmlDocletWriter.java:1545)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter$2.visitLink(HtmlDocletWriter.java:1397)
[ERROR] 	at jdk.compiler/com.sun.tools.javac.tree.DCTree$DCLink.accept(DCTree.java:538)
[ERROR] 	at jdk.compiler/com.sun.source.util.SimpleDocTreeVisitor.visit(SimpleDocTreeVisitor.java:79)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.commentTagsToContent(HtmlDocletWriter.java:1629)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.TagletWriterImpl.throwsTagOutput(TagletWriterImpl.java:410)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets.ThrowsTaglet.throwsTagsOutput(ThrowsTaglet.java:214)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets.ThrowsTaglet.inheritThrowsDocumentation(ThrowsTaglet.java:155)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets.ThrowsTaglet.getAllBlockTagOutput(ThrowsTaglet.java:177)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.taglets.TagletWriter.getBlockTagOutput(TagletWriter.java:288)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:365)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.getBlockTagOutput(HtmlDocletWriter.java:351)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDocletWriter.addTagsInfo(HtmlDocletWriter.java:337)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.MethodWriterImpl.addTags(MethodWriterImpl.java:175)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.MethodBuilder.buildTagInfo(MethodBuilder.java:190)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.MethodBuilder.buildMethodDoc(MethodBuilder.java:128)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.MethodBuilder.build(MethodBuilder.java:106)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ClassBuilder.buildMethodDetails(ClassBuilder.java:398)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ClassBuilder.buildMemberDetails(ClassBuilder.java:346)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ClassBuilder.buildClassDoc(ClassBuilder.java:149)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.ClassBuilder.build(ClassBuilder.java:113)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:376)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateClassFiles(AbstractDoclet.java:286)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateClassFiles(HtmlDoclet.java:199)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:212)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:115)
[ERROR] 	at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:103)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:556)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:393)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:342)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
[ERROR] 	at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)
[ERROR] 1 error
[ERROR] 100 warnings
[ERROR] Command line was: /home/user/jdk-17.0.12/bin/javadoc -J-Duser.language= -J-Duser.country= @options @packages
[ERROR] 
[ERROR] Refer to the generated Javadoc files in '/home/user/creadur-rat/apache-rat-core/target/reports/apidocs' dir.
[ERROR] 
[ERROR] -> [Help 1]


Comments
Additional Information from submitter: ========================================= I did some more investigations into the issue. It happens with JDKs: * 17 * 18 * 19 and seems to be fixed >=21 and <17. It would really be very helpful to get some sort of debugging info about the last file being processed.
23-12-2025

Additional Information from submitter ======================= Unfortunately the provided fix does not provide a complete fix for the underlying problem! Sorry - the bug is not yet solved! ./mvnw javadoc:javadoc is working, but ./mvnw -B clean package site site:stage fails with above error message! I accidentally seem to have fixed the problem and want to provide a link to the commit. Feel free to add this kind of "error" to your integration test suite to verify that all javadoc versions are able to handle references to itself and broken javadoc links. The relevant commit is on a feature branch:<LINK>
03-11-2025

Observations on macOS 15.7.1 and Ubuntu 24.04: - JDK 8u461: Passed, NPE isn't thrown - JDK 25+37-LTS-3491: Passed, isn't thrown I could not reproduce the issue. ./mvnw -v Maven home: /home/ubuntu/.m2/wrapper/dists/apache-maven-3.9.11/a2d47e15 Java version: 25, vendor: Oracle Corporation, runtime: /home/ubuntu/Java/Oracle/jdk-25 Default locale: es_ES, platform encoding: UTF-8 OS name: "linux", version: "6.11.0-17-generic", arch: "amd64", family: "unix"
11-10-2025

Even it the stacktrace is similar to JDK-8332039, JDK-8270866, and JDK-8269722, the test cases of those issues are fixed and pass on latest versions.
11-10-2025