Versions used:
- Sonarcloud
- Gradle 6.6.1 with ‘org.sonarqube’ plugin (version ‘2.8’)
- Java compiler source and target versions are Java 14
- Build and analysis runs on AdoptOpenJDK jdk-14+36
In build logs the following similar stack traces can be seen for a small number of classes:
Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor - on file 'src/main/java/com/company/core/domain/ClassName.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.NullPointerException: null
at java.base/java.util.Objects.requireNonNull(Objects.java:222)
at org.sonar.java.collections.AVLTree.get(AVLTree.java:76)
at org.sonar.java.se.ProgramState.removeConstraintsOnDomain(ProgramState.java:320)
at org.sonar.java.se.checks.StreamConsumedCheck.checkPostStatement(StreamConsumedCheck.java:212)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:106)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:118)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.checks.NullDereferenceCheck.checkPostStatement(NullDereferenceCheck.java:234)
at org.sonar.java.se.CheckerDispatcher.executePost(CheckerDispatcher.java:106)
at org.sonar.java.se.CheckerDispatcher.addTransition(CheckerDispatcher.java:97)
at org.sonar.java.se.CheckerDispatcher.executeCheckPostStatement(CheckerDispatcher.java:69)
at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:270)
at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:224)
at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:73)
at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:63)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:103)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:128)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:105)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:128)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:105)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:86)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:72)
at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:53)
at org.sonar.java.model.VisitorsBridge.lambda$runScanner$0(VisitorsBridge.java:180)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:185)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:180)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:151)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:98)
at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:64)
at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:114)
at org.sonar.java.JavaSquid.scan(JavaSquid.java:107)
at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:103)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:45)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:75)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:48)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:66)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:48)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:68)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:122)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:108)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:421)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:417)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:375)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:122)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:108)
at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:126)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:122)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:108)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:58)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:52)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy81.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
at org.sonarqube.gradle.SonarQubeTask.run(SonarQubeTask.java:100)
What all of those classes have in common is switch expressions that look like this:
return switch (itemType) {
case SOME_TYPE -> 123;
case ANOTHER_TYPE -> 456;
};