Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8359336

javac crashes with NPE while iterating params of MethodSymbol

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2 P2
    • None
    • 21.0.8
    • tools
    • None

      In our prerelease testing we see an issue with javac / javadoc.

      P2 because it seems to be a regression in 21.0.8 to be delivered in about 4 weeks. 21.0.8 had several backports to javac: [21.0.8 javac issues|https://bugs.openjdk.org/browse/JDK-8354893?filter=47405&jql=(issue%20in%20linked-subquery(%22issue%20in%20linked-subquery(%5C%22issue%20in%20linked-subquery(%5C%5C%5C%22fixVersion%20in%20(21.0.8)%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20Resolution%20not%20in%20(%5C%5C%5C%5C%5C%5C%5C%22Won%27t%20Fix%5C%5C%5C%5C%5C%5C%5C%22)%5C%5C%5C%22%2C%20backport%2C%20inward)%5C%22%2C%20backport%2C%20outward)%20AND%20fixVersion%20in%20(21.0.8)%22%2C%20backport%2C%20inward)%20OR%20fixVersion%20in%20(21.0.8)%20AND%20status%20in%20(Resolved%2C%20Closed)%20AND%20Resolution%20not%20in%20(%22Won%27t%20Fix%22)%20AND%20issue%20not%20in%20linked-subquery(%22issue%20in%20linked-subquery(%5C%22fixVersion%20in%20(21.0.8)%5C%22%2C%20backport%2C%20inward)%22%2C%20backport%2C%20outward))%20%20AND%20type%20!%3D%20CSR%20AND%20labels%20not%20in%20(release-note%2C%20testbug%2C%20noreg-self%2C%20testonly%2C%20test-only)%20%20AND%20subcomponent%20in%20(javac)%20ORDER%20BY%20id%20DESC]

      The failing code was introduced by JDK-8341779.

      The stack trace we see is

       java.lang.NullPointerException: Cannot invoke "com.sun.tools.javac.util.List.iterator()" because "s.params" is null
                      at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$TypeAnnotationSymbolVisitor.visitMethodSymbol(ClassReader.java:2333)
                      at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$TypeAnnotationSymbolVisitor.visitMethodSymbol(ClassReader.java:2289)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol$MethodSymbol.accept(Symbol.java:2305)
                      at jdk.compiler/com.sun.tools.javac.code.Types$DefaultSymbolVisitor.visit(Types.java:4927)
                      at jdk.compiler/com.sun.tools.javac.jvm.ClassReader.addTypeAnnotationsToSymbol(ClassReader.java:2278)
                      at jdk.compiler/com.sun.tools.javac.jvm.ClassReader$TypeAnnotationCompleter.run(ClassReader.java:2261)
                      at jdk.compiler/com.sun.tools.javac.comp.Annotate.flush(Annotate.java:191)
                      at jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:322)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:683)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1452)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol.apiComplete(Symbol.java:689)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol$TypeSymbol.getEnclosedElements(Symbol.java:860)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.getEnclosedElements(Symbol.java:1417)
                      at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.getEnclosedElements(Symbol.java:1260)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems0(Utils.java:1782)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.recursiveGetItems(Utils.java:1763)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.recursiveGetItems(Utils.java:1766)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getItems(Utils.java:1745)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.util.Utils.getAllClassesUnfiltered(Utils.java:1678)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.SerializedFormBuilder.buildPackageSerializedForm(SerializedFormBuilder.java:171)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.SerializedFormBuilder.buildSerializedFormSummaries(SerializedFormBuilder.java:158)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.SerializedFormBuilder.buildSerializedForm(SerializedFormBuilder.java:141)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.builders.SerializedFormBuilder.build(SerializedFormBuilder.java:129)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.generateOtherFiles(AbstractDoclet.java:228)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.formats.html.HtmlDoclet.generateOtherFiles(HtmlDoclet.java:215)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.startGeneration(AbstractDoclet.java:213)
                      at jdk.javadoc/jdk.javadoc.internal.doclets.toolkit.AbstractDoclet.run(AbstractDoclet.java:110)
                      at jdk.javadoc/jdk.javadoc.doclet.StandardDoclet.run(StandardDoclet.java:104)
                      at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:575)
                      at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:398)
                      at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:347)
                      at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:57)
                      at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:46)

            Unassigned Unassigned
            goetz Goetz Lindenmaier
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: