【发布时间】:2016-09-21 15:04:18
【问题描述】:
SonarLint 2.2.1 无法分析 Eclipse Mars 4.5.2 中的以下 Java 类
public class Temp {
@FunctionalInterface
private interface IX {
void execute(StringBuffer sb);
}
static {
x(sb -> y());
}
private static void x(IX parm) {}
private static void y(){}
}
如果我将 StringBuffer 更改为其他任何内容,则没有问题。
附加说明:用 Stack
这是我看到的转储
分析过程中的错误 org.sonar.squidbridge.api.AnalysisException:SonarQube 无法分析文件:'C:\projects\...\Temp.java' 在 org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:93) 在 org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67) 在 org.sonar.java.JavaSquid.scanSources(JavaSquid.java:119) 在 org.sonar.java.JavaSquid.scan(JavaSquid.java:113) 在 org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:87) 在 org.sonarsource.sonarlint.core.analyzer.sensor.SensorWrapper.analysis(SensorWrapper.java:52) 在 org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:73) 在 org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:63) 在 org.sonarsource.sonarlint.core.analyzer.sensor.PhaseExecutor.execute(PhaseExecutor.java:44) 在 org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:143) 在 org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125) 在 org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:110) 在 org.sonarsource.sonarlint.core.container.standalone.StandaloneGlobalContainer.analyze(StandaloneGlobalContainer.java:118) 在 org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.analyze(StandaloneSonarLintEngineImpl.java:93) 在 org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.analyze(StandaloneSonarLintEngineImpl.java:83) 在 org.sonarlint.eclipse.core.internal.jobs.StandaloneSonarLintClientFacade.runAnalysis(StandaloneSonarLintClientFacade.java:60) 在 org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob.run(AnalyzeProjectJob.java:463) 在 org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob$AnalysisThread.run(AnalyzeProjectJob.java:127) 引起:java.lang.NullPointerException 在 org.sonar.java.AnalyzerMessage.textSpanBetween(AnalyzerMessage.java:122) 在 org.sonar.java.AnalyzerMessage.textSpanFor(AnalyzerMessage.java:111) 在 org.sonar.java.model.DefaultJavaFileScannerContext.createAnalyzerMessage(DefaultJavaFileScannerContext.java:133) 在 org.sonar.java.model.DefaultJavaFileScannerContext.reportIssue(DefaultJavaFileScannerContext.java:118) 在 org.sonar.java.model.DefaultJavaFileScannerContext.reportIssue(DefaultJavaFileScannerContext.java:113) 在 org.sonar.plugins.java.api.IssuableSubscriptionVisitor.reportIssue(IssuableSubscriptionVisitor.java:57) 在 org.sonar.java.checks.SynchronizedClassUsageCheck$DeprecatedTypeVisitor.reportIssueOnDeprecatedType(SynchronizedClassUsageCheck.java:102) 在 org.sonar.java.checks.SynchronizedClassUsageCheck$DeprecatedTypeVisitor.visitVariable(SynchronizedClassUsageCheck.java:95) 在 org.sonar.java.model.declaration.VariableTreeImpl.accept(VariableTreeImpl.java:184) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitLambdaExpression(BaseTreeVisitor.java:342) 在 org.sonar.java.model.expression.LambdaExpressionTreeImpl.accept(LambdaExpressionTreeImpl.java:91) 在 org.sonar.java.ast.parser.ListTreeImpl.accept(ListTreeImpl.java:63) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:48) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitMethodInvocation(BaseTreeVisitor.java:252) 在 org.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:96) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitExpressionStatement(BaseTreeVisitor.java:101) 在 org.sonar.java.model.statement.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:65) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) 在 org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:77) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) 在 org.sonar.java.checks.SynchronizedClassUsageCheck$DeprecatedTypeVisitor.visitClass(SynchronizedClassUsageCheck.java:73) 在 org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:198) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) 在 org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:55) 在 org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:184) 在 org.sonar.java.checks.SynchronizedClassUsageCheck.visitNode(SynchronizedClassUsageCheck.java:61) 在 org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:95) 在 org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:78) 在 org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:64) 在 org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:123) 在 org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84) ... 17 更多【问题讨论】: