Multiply NPE in SonarQube logs

SonarQube version: SonarQube_Scanner_3.3.0.1492
Running from zip archive.
Java version: OpenJDK8 jdk8u212-b04

Observing multiply NPE in the same file. It is not breaking build, but I’m wandering why I’m observing this.

  • ERROR: Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor
16:50:06  java.lang.NullPointerException: null
16:50:06  	at org.eclipse.jdt.core.dom.MethodBinding.filterTypeAnnotations(MethodBinding.java:244)
16:50:06  	at org.eclipse.jdt.core.dom.MethodBinding.getAnnotations(MethodBinding.java:133)
16:50:06  	at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:354)
16:50:06  	at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334)
16:50:06  	at org.sonar.java.se.NullableAnnotationUtils.lambda$valuesForGlobalAnnotation$6(NullableAnnotationUtils.java:297)
16:50:06  	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
16:50:06  	at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958)
16:50:06  	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
16:50:06  	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
16:50:06  	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
16:50:06  	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
16:50:06  	at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
16:50:06  	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
16:50:06  	at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464)
16:50:06  	at org.sonar.java.se.NullableAnnotationUtils.valuesForGlobalAnnotation(NullableAnnotationUtils.java:299)
16:50:06  	at org.sonar.java.se.NullableAnnotationUtils.isGloballyAnnotatedWithEclipseNonNullByDefault(NullableAnnotationUtils.java:304)
16:50:06  	at org.sonar.java.se.NullableAnnotationUtils.nonNullAnnotationOnParameters(NullableAnnotationUtils.java:277)
16:50:06  	at org.sonar.java.se.NullableAnnotationUtils.isGloballyAnnotatedParameterNonNull(NullableAnnotationUtils.java:272)
16:50:06  	at org.sonar.java.se.ExplodedGraphWalker.startingStates(ExplodedGraphWalker.java:361)
16:50:06  	at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:243)
16:50:06  	at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:218)
16:50:06  	at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:210)
16:50:06  	at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:84)
16:50:06  	at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:70)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:100)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:83)
16:50:06  	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:69)
16:50:06  	at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:59)
16:50:06  	at org.sonar.java.model.VisitorsBridge.lambda$runScanner$0(VisitorsBridge.java:154)
16:50:06  	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159)
16:50:06  	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:154)
16:50:06  	at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:128)
16:50:06  	at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127)
16:50:06  	at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79)
16:50:06  	at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130)
16:50:06  	at org.sonar.java.JavaSquid.scan(JavaSquid.java:116)
  • ERROR: Unable to run check class org.sonar.java.filters.PostAnalysisIssueFilter
**16:50:06** java.lang.NullPointerException: null **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.filterTypeAnnotations(MethodBinding.java:244) **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.getAnnotations(MethodBinding.java:133) **16:50:06** at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:354) **16:50:06** at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334) **16:50:06** at org.sonar.java.filters.GeneratedCodeFilter.isGenerated(GeneratedCodeFilter.java:55) **16:50:06** at org.sonar.java.filters.GeneratedCodeFilter.visitMethod(GeneratedCodeFilter.java:48) **16:50:06** at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:222) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitClass(BaseTreeVisitor.java:68) **16:50:06** at org.sonar.java.filters.GeneratedCodeFilter.visitClass(GeneratedCodeFilter.java:43) **16:50:06** at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:220) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:52) **16:50:06** at org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:185) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.java.filters.AnyRuleIssueFilter.scanFile(AnyRuleIssueFilter.java:45) **16:50:06** at org.sonar.java.filters.GeneratedCodeFilter.scanFile(GeneratedCodeFilter.java:35) **16:50:06** at org.sonar.java.filters.PostAnalysisIssueFilter.lambda$scanFile$1(PostAnalysisIssueFilter.java:56) **16:50:06** at java.util.Arrays$ArrayList.forEach(Arrays.java:3880) **16:50:06** at java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1080) **16:50:06** at org.sonar.java.filters.PostAnalysisIssueFilter.scanFile(PostAnalysisIssueFilter.java:56) **16:50:06** at org.sonar.java.model.VisitorsBridge.lambda$runScanner$0(VisitorsBridge.java:154) **16:50:06** at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159) **16:50:06** at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:154) **16:50:06** at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:128) **16:50:06** at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127) **16:50:06** at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79) **16:50:06** at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130) **16:50:06** at org.sonar.java.JavaSquid.scan(JavaSquid.java:116)
  • ERROR: Unable to run check class org.sonar.java.checks.TooManyParametersCheck - S107
**16:50:06** java.lang.NullPointerException: null **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.filterTypeAnnotations(MethodBinding.java:244) **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.getAnnotations(MethodBinding.java:133) **16:50:06** at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:354) **16:50:06** at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334) **16:50:06** at org.sonar.java.checks.TooManyParametersCheck.usesAuthorizedAnnotation(TooManyParametersCheck.java:106) **16:50:06** at org.sonar.java.checks.TooManyParametersCheck.visitMethod(TooManyParametersCheck.java:79) **16:50:06** at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:222) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitClass(BaseTreeVisitor.java:68) **16:50:06** at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:220) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:52) **16:50:06** at org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:185) **16:50:06** at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) **16:50:06** at org.sonar.java.checks.TooManyParametersCheck.scanFile(TooManyParametersCheck.java:73) **16:50:06** at org.sonar.java.model.VisitorsBridge.lambda$runScanner$0(VisitorsBridge.java:154) **16:50:06** at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159) **16:50:06** at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:154) **16:50:06** at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:128) **16:50:06** at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127) **16:50:06** at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79) **16:50:06** at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130) **16:50:06** at org.sonar.java.JavaSquid.scan(JavaSquid.java:116)
  • ERROR: Unable to run check class org.sonar.java.checks.spring.SpringIncompatibleTransactionalCheck - S2229
**16:50:06** java.lang.NullPointerException: null **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.filterTypeAnnotations(MethodBinding.java:244) **16:50:06** at org.eclipse.jdt.core.dom.MethodBinding.getAnnotations(MethodBinding.java:133) **16:50:06** at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:354) **16:50:06** at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334) **16:50:06** at org.sonar.java.checks.spring.SpringIncompatibleTransactionalCheck.getPropagation(SpringIncompatibleTransactionalCheck.java:154) **16:50:06** at org.sonar.java.checks.spring.SpringIncompatibleTransactionalCheck.collectMethodsPropagation(SpringIncompatibleTransactionalCheck.java:140) **16:50:06** at org.sonar.java.checks.spring.SpringIncompatibleTransactionalCheck.visitNode(SpringIncompatibleTransactionalCheck.java:85) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$visit$6(VisitorsBridge.java:287) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$forEach$9(VisitorsBridge.java:303) **16:50:06** at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159) **16:50:06** at org.sonar.java.model.VisitorsBridge.access$100(VisitorsBridge.java:62) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.forEach(VisitorsBridge.java:303) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:289) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:273) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:293) **16:50:06** at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.run(VisitorsBridge.java:264) **16:50:06** at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:139) **16:50:06** at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127) **16:50:06** at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79) **16:50:06** at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130) **16:50:06** at org.sonar.java.JavaSquid.scan(JavaSquid.java:116)

All error in the same class, unable to share file content, but can share list of method annotations used in this class:

javax.annotation.PostConstruct
org.springframework.context.event.EventListener
java.lang.Override

Hi,

Scanner version 3.3.0 is really old at this point.

You don’t mention your version of SonarQube, but you should make sure you’re on a supported version, either SonarQube 9.9.1 LTS, or SonarQube 10.0, as well as the lastest scanner. Note that you’ll need Java 17 for a supported SonarQube version and at least Java 11 for the scanner.

 
HTH,
Ann