2016-10-07 5 views
0

는 다음 클래스 고려 :SonarQube 오류 : "<Class>에 대한 심볼 테이블을 만들 수 없습니다"

public class SqAnalysisTest { 
public void method() { 
    Collection<Reader> readers = new ArrayList<>(); 
    readers.add (SqAnalysisTest::readString); 
} 

@FunctionalInterface 
public static interface Reader { 
    Object read (ByteBuffer buffer); 
} 

public static String readString (ByteBuffer buffer) { 
    /* read string from buffer and return */ 
    return "a string"; 
} 
} 

이 잘 컴파일,하지만 SonarQube으로 분석 할 때 내가 (아래 전체 스택 추적)를 Unable to create symbol table for : <Class> 오류를 받고 있어요.

저는 SonarQube 5.6.3을 사용하고 있습니다. 이것은 Eclipse (SonarLint 2.2.1)뿐 아니라 명령 행 (SonarQube Scanner 2.7)에서도 발생합니다.

추신 : 참고로, 이것은 내가지고있어 전체 스택 추적입니다 :

Unable to create symbol table for : C:\Workspaces\E2pr\trunk-complete\e2pr-server\main\tools\src\com\icon\scp\tools\SqAnalysisTest.java 
java.lang.ClassCastException: org.sonar.java.resolve.ClassJavaType cannot be cast to org.sonar.java.resolve.ParametrizedTypeJavaType 
    at org.sonar.java.resolve.TypeAndReferenceSolver.refineType(TypeAndReferenceSolver.java:558) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethodReference(TypeAndReferenceSolver.java:946) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.expression.MethodReferenceTreeImpl.accept(MethodReferenceTreeImpl.java:62) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.setInferedType(TypeAndReferenceSolver.java:299) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.inferArgumentTypes(TypeAndReferenceSolver.java:775) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethodInvocation(TypeAndReferenceSolver.java:245) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:96) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitExpressionStatement(BaseTreeVisitor.java:101) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.visitExpressionStatement(TypeAndReferenceSolver.java:745) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.statement.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:65) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:77) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethod(TypeAndReferenceSolver.java:131) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:218) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.TypeAndReferenceSolver.visitClass(TypeAndReferenceSolver.java:140) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:198) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:55) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:62) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:107) ~[java-frontend-4.2.jar:na] 
    at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84) [java-frontend-4.2.jar:na] 
    at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67) [java-frontend-4.2.jar:na] 
    at org.sonar.java.JavaSquid.scanTests(JavaSquid.java:125) [java-frontend-4.2.jar:na] 
    at org.sonar.java.JavaSquid.scan(JavaSquid.java:114) [java-frontend-4.2.jar:na] 
    at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:87) [sonar-java-plugin-4.2.jar:na] 
    at org.sonarsource.sonarlint.core.analyzer.sensor.SensorWrapper.analyse(SensorWrapper.java:52) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:73) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:63) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.analyzer.sensor.PhaseExecutor.execute(PhaseExecutor.java:44) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:143) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:110) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.container.standalone.StandaloneGlobalContainer.analyze(StandaloneGlobalContainer.java:118) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.analyze(StandaloneSonarLintEngineImpl.java:93) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.analyze(StandaloneSonarLintEngineImpl.java:83) [org.sonarsource.sonarlint.core.sonarlint-core_2.4.1.jar:na] 
    at org.sonarlint.eclipse.core.internal.jobs.StandaloneSonarLintClientFacade.runAnalysis(StandaloneSonarLintClientFacade.java:60) [org.sonarlint.eclipse.core_2.2.1.201608261350-RELEASE.jar:na] 
    at org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob.run(AnalyzeProjectJob.java:463) [org.sonarlint.eclipse.core_2.2.1.201608261350-RELEASE.jar:na] 
    at org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob$AnalysisThread.run(AnalyzeProjectJob.java:127) [org.sonarlint.eclipse.core_2.2.1.201608261350-RELEASE.jar:na] 

답변

2

내 느낌은 당신의 곧 4.2.1 버전에서 수정 된이 버그에 직면 해 올 경우 SonarQube Java 플러그인 : https://jira.sonarsource.com/browse/SONARJAVA-1839. SonarLint에서는 실제로 사용할 수 없습니다.

+0

답변 해 주셔서 감사합니다. 그러나 4.2 버전의 Java 플러그인이 설치되어 있습니다. 어쨌든, 나는 버그를보고 할 공식 장소가 Google 그룹이라는 것을 깨달았습니다. 토론을해야합니까? – JohannesR

+0

안녕하세요 @ JohannesR, 문제는 https://jira.sonarsource.com/browse/SONARJAVA-1839로 인해 수정되었지만 아직 제공되지 않아서 답변을 업데이트했습니다. 이번 주에 버전 4.2.1이 릴리스되어야합니다. –

+0

아, 좋아. 사용할 수있을 때 4.2.1을 테스트 할 것입니다. 감사! – JohannesR