Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor / IllegalStateException: null

Running Sonarqube 7.9 LTS, with Gradle plugin, Java 8 for the source code. And a large project.

Seeing the following error in an attempt to analyze code. I’m not sure I can post the source code of the original file, so suggestions for narrowing down the problem would be helpful.

20:46:47 - Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor -  on file 'mas-content/src/main/com/apple/madrid/mmcs/MasMMCS.java', To help improve SonarJava, please report this problem to SonarSource : see https://www.sonarqube.org/community/
20:46:47 - java.lang.IllegalStateException: null
20:46:47 - 	at com.google.common.base.Preconditions.checkState(Preconditions.java:491)
20:46:47 - 	at org.sonar.java.se.checks.OptionalGetBeforeIsPresentCheck$FilteredOptionalSymbolicValue.setConstraint(OptionalGetBeforeIsPresentCheck.java:143)
20:46:47 - 	at org.sonar.java.se.checks.OptionalGetBeforeIsPresentCheck$PreStatementVisitor.visitMethodInvocation(OptionalGetBeforeIsPresentCheck.java:243)
20:46:47 - 	at org.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:97)
20:46:47 - 	at org.sonar.java.se.checks.OptionalGetBeforeIsPresentCheck.checkPreStatement(OptionalGetBeforeIsPresentCheck.java:80)
20:46:47 - 	at org.sonar.java.se.CheckerDispatcher.executeCheckPreStatement(CheckerDispatcher.java:57)
20:46:47 - 	at org.sonar.java.se.ExplodedGraphWalker.visit(ExplodedGraphWalker.java:550)
20:46:47 - 	at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:258)
20:46:47 - 	at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:218)
20:46:47 - 	at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:74)
20:46:47 - 	at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:64)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:103)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:128)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:105)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:128)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:105)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:86)
20:46:47 - 	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:72)
20:46:47 - 	at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:54)
20:46:47 - 	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:149)
20:46:47 - 	at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:137)
20:46:47 - 	at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:90)
20:46:47 - 	at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67)
20:46:47 - 	at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:115)
20:46:47 - 	at org.sonar.java.JavaSquid.scan(JavaSquid.java:109)
20:46:47 - 	at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:88)
20:46:47 - 	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
20:46:47 - 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
20:46:47 - 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
20:46:47 - 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
20:46:47 - 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
20:46:47 - 	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
20:46:47 - 	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:400)
20:46:47 - 	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:395)
20:46:47 - 	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:392)
20:46:47 - 	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:358)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
20:46:47 - 	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
20:46:47 - 	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
20:46:47 - 	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
20:46:47 - 	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
20:46:47 - 	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
20:46:47 - 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
20:46:47 - 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
20:46:47 - 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
20:46:47 - 	at java.lang.reflect.Method.invoke(Method.java:498)
20:46:47 - 	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
20:46:47 - 	at com.sun.proxy.$Proxy72.execute(Unknown Source)
20:46:47 - 	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
20:46:47 - 	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
20:46:47 - 	at org.sonarqube.gradle.SonarQubeTask.run(SonarQubeTask.java:100)
20:46:47 - 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
20:46:47 - 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
20:46:47 - 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
20:46:47 - 	at java.lang.reflect.Method.invoke(Method.java:498)
20:46:47 - 	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
20:46:47 - 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
20:46:47 - 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
20:46:47 - 	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
20:46:47 - 	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:801)
20:46:47 - 	at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:768)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
20:46:47 - 	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
20:46:47 - 	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
20:46:47 - 	at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
20:46:47 - 	at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
20:46:47 - 	at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
20:46:47 - 	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
20:46:47 - 	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
20:46:47 - 	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
20:46:47 - 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
20:46:47 - 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
20:46:47 - 	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
20:46:47 - 	at java.lang.Thread.run(Thread.java:748)

hello @tjoneslow,

to be able to pinpoint the problem I would need a code snippet to reproduce it. From the stacktrace it seems that issue is related to the usage of java.util.Optional#filter. You can try to extract the code into standalone file and simplify it, while still reproducing the issue.