Hi,
The following code produces an exception which stops the sonar runner and sonar lint in IDE to analyse the file.
Here is the code snippet.
import java.util.ArrayList;
import java.util.function.Function;
public enum SonarProblemCase {
//crashes
MY_BUCKET( rp -> {
return new ArrayList<Integer>();
}),
//works fine
MY_BUCKET2(rp -> new ArrayList<Integer>() );
SonarProblemCase(Function<Object,Object> bucketer) {
}
}
Exception:
SonarQube is unable to analyze file : 'SonarProblemCase.java'
org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : 'SonarProblemCase.java'
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:93)
at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67)
at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:135)
at org.sonar.java.JavaSquid.scan(JavaSquid.java:128)
at org.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:90)
at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:54)
at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:47)
at org.sonarsource.sonarlint.core.analyzer.sensor.PhaseExecutor.execute(PhaseExecutor.java:45)
at org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:134)
at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:128)
at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:113)
at org.sonarsource.sonarlint.core.container.global.GlobalContainer.analyze(GlobalContainer.java:102)
at org.sonarsource.sonarlint.core.SonarLintClientImpl.analyze(SonarLintClientImpl.java:85)
at org.sonarlint.intellij.analysis.DefaultSonarLintFacade.startAnalysis(DefaultSonarLintFacade.java:96)
at org.sonarlint.intellij.analysis.SonarLintAnalysisConfigurator.analyzeModule(SonarLintAnalysisConfigurator.java:89)
at org.sonarlint.intellij.analysis.SonarLintTask.run(SonarLintTask.java:92)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:563)
at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:142)
at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:446)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:392)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:127)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:126)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:366)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:55)
Caused by: java.lang.NullPointerException
at org.sonar.java.checks.DiamondOperatorCheck$TypeTreeLocator.getParentMethod(DiamondOperatorCheck.java:166)
at org.sonar.java.checks.DiamondOperatorCheck$TypeTreeLocator.getMethodReturnType(DiamondOperatorCheck.java:160)
at org.sonar.java.checks.DiamondOperatorCheck$TypeTreeLocator.visitReturnStatement(DiamondOperatorCheck.java:133)
at org.sonar.java.model.statement.ReturnStatementTreeImpl.accept(ReturnStatementTreeImpl.java:69)
at org.sonar.java.checks.DiamondOperatorCheck.getTypeFromExpression(DiamondOperatorCheck.java:107)
at org.sonar.java.checks.DiamondOperatorCheck.visitNode(DiamondOperatorCheck.java:93)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:88)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:113)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:90)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:71)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:64)
at org.sonar.java.checks.SubscriptionBaseVisitor.scanFile(SubscriptionBaseVisitor.java:33)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:127)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84)
... 29 more