[Java] Unable to create symbol table - java.lang.IllegalStateException: Innerclass: <> and classSymbol: <> are not the same

1,015 views
Skip to first unread message

Daniel Geißler

unread,
Feb 12, 2016, 2:56:28 AM2/12/16
to SonarQube
Hello Sonarqube Team,

i am currently using SonarQube 4.5.4 with JavaPlugin 3.3.
For quiet some time now (i m sorry but can't exactly tell when it started) i see some errors in the ant-log like the following:

21:55:11.328 ERROR - Unable to create symbol table for : /....java
java
.lang.IllegalStateException: Innerclass: ChartDirector and classSymbol: DrawArea are not the same.
 at com
.google.common.base.Preconditions.checkState(Preconditions.java:145) ~[sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.java.resolve.BytecodeVisitor.defineInnerClass(BytecodeVisitor.java:162) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.BytecodeVisitor.visitInnerClass(BytecodeVisitor.java:144) ~[java-squid-3.3.jar:na]
 at org
.objectweb.asm.ClassReader.accept(ClassReader.java:679) ~[asm-debug-all-5.0.3.jar:5.0.3]
 at org
.objectweb.asm.ClassReader.accept(ClassReader.java:506) ~[asm-debug-all-5.0.3.jar:5.0.3]
 at org
.sonar.java.resolve.BytecodeCompleter.complete(BytecodeCompleter.java:103) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.JavaSymbol.complete(JavaSymbol.java:104) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.JavaType.getSymbol(JavaType.java:77) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.Resolve.findMethod(Resolve.java:385) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.Resolve.findMethod(Resolve.java:380) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveMethodSymbol(TypeAndReferenceSolver.java:225) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitMethodInvocation(TypeAndReferenceSolver.java:199) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:102) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:280) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:248) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:241) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitTypeCast(TypeAndReferenceSolver.java:526) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.expression.TypeCastExpressionTreeImpl.accept(TypeCastExpressionTreeImpl.java:94) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:280) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:248) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:241) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitBinaryExpression(TypeAndReferenceSolver.java:418) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.expression.BinaryExpressionTreeImpl.accept(BinaryExpressionTreeImpl.java:85) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:280) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:248) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:241) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitVariable(TypeAndReferenceSolver.java:486) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.declaration.VariableTreeImpl.accept(VariableTreeImpl.java:191) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:42) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:36) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:91) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:42) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitMethod(TypeAndReferenceSolver.java:116) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:193) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:42) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:36) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.TypeAndReferenceSolver.visitClass(TypeAndReferenceSolver.java:125) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:189) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:42) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:36) ~[java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:55) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:66) ~[java-squid-3.3.jar:na]
 at org
.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:110) ~[java-squid-3.3.jar:na]
 at com
.sonar.sslr.impl.ast.AstWalker.walkAndVisit(AstWalker.java:67) [sslr-core-1.20.jar:na]
 at org
.sonar.java.ast.AstScanner.simpleScan(AstScanner.java:107) [java-squid-3.3.jar:na]
 at org
.sonar.java.ast.AstScanner.scan(AstScanner.java:75) [java-squid-3.3.jar:na]
 at org
.sonar.java.JavaSquid.scanSources(JavaSquid.java:132) [java-squid-3.3.jar:na]
 at org
.sonar.java.JavaSquid.scan(JavaSquid.java:125) [java-squid-3.3.jar:na]
 at org
.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:86) [sonar-java-plugin-3.3.jar:na]
 at org
.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:119) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:194) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:233) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:228) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:226) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:221) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ScanTask.scan(ScanTask.java:64) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.scan.ScanTask.execute(ScanTask.java:51) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:125) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:173) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) [sonar-batch-maven-compat-4.5.4.jar:na]
 at org
.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) [sonar-runner-batch1125259228203574089.jar:na]
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_85]
 at sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_85]
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_85]
 at java
.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_85]
 at org
.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) [sonar-ant-task.jar:na]
 at org
.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) [sonar-ant-task.jar:na]
 at java
.security.AccessController.doPrivileged(Native Method) [na:1.7.0_85]
 at org
.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) [sonar-ant-task.jar:na]
 at org
.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) [sonar-ant-task.jar:na]
 at org
.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) [sonar-ant-task.jar:na]
 at org
.sonar.runner.api.Runner.execute(Runner.java:100) [sonar-ant-task.jar:na]
 at org
.sonar.ant.SonarTask.launchAnalysis(SonarTask.java:53) [sonar-ant-task.jar:na]
 at org
.sonar.ant.SonarTask.execute(SonarTask.java:48) [sonar-ant-task.jar:na]
 at org
.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) [ant.jar:1.9.4]
 at sun
.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_85]
 at java
.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_85]
 at org
.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
 at org
.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) [ant.jar:1.9.4]
 at org
.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) [ant.jar:na]
 at org
.apache.tools.ant.Project.executeTargets(Project.java:1248) [ant.jar:1.9.4]
 at org
.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441) [ant.jar:na]
 at org
.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) [ant.jar:1.9.4]
 at sun
.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_85]
 at java
.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_85]
 at org
.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
 at org
.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Project.executeTarget(Project.java:1364) [ant.jar:1.9.4]
 at org
.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) [ant.jar:na]
 at org
.apache.tools.ant.Project.executeTargets(Project.java:1248) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Main.runBuild(Main.java:851) [ant.jar:1.9.4]
 at org
.apache.tools.ant.Main.startAnt(Main.java:235) [ant.jar:1.9.4]
 at org
.apache.tools.ant.launch.Launcher.run(Launcher.java:280) [ant-launcher.jar:na]
 at org
.apache.tools.ant.launch.Launcher.main(Launcher.java:109) [ant-launcher.jar:na]

I didn't pay too much attention to them as the build succeeded anyway and i could see the issues of the project (and there are quiet a lot to fix, so ...).
Anyway the Logs seemed to be related to Code that was importing classes from a library (http://www.advsofteng.com/download.html) with a obfuscated code and suboptimal package naming:

import ChartDirector.XYChart;
Here ChartDirector is not a class but the name of a package.
And strangely the DrawArea class seems to be located in two different files. One that is named az.class and one with the name DrawArea.class (at least this is what i can see from a decompiler). Maybe this obfuscation thing is the problem?

I am aware of https://groups.google.com/forum/#!searchin/sonarqube/innerclass$20classsymbol/sonarqube/U2OFVJgFqrc/1Dq8KhOuCwAJ . The mentioned Issue (https://jira.sonarsource.com/browse/SONARJAVA-805) is marked as fixed for Version 3.6, so now that i wanted to test a upgrade to SonarQube i started with the JavaPlugin to version 3.10.

Now a simmilar issue but in other Java-Files is starting to hurt, as it now fails the analysis:

...build\build.xml:126: The following error occurred while executing this line:
..build\bootstrap\build-common.xml:522: org.sonar.runner.impl.RunnerException: Unable to execute Sonar
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
        at org.sonar.runner.api.Runner.execute(Runner.java:100)
        at org.sonar.ant.SonarTask.launchAnalysis(SonarTask.java:53)
        at org.sonar.ant.SonarTask.execute(SonarTask.java:48)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:853)
        at org.apache.tools.ant.Main.startAnt(Main.java:235)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : '....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.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
        at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:98)
        at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:185)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117)
        at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:243)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:238)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
        at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:228)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117)
        at org.sonar.batch.task.ScanTask.execute(ScanTask.java:55)
        at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117)
        at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:122)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:79)
        at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
        ... 36 more
Caused by: java.lang.IllegalStateException: Error short name does not include outerclass name : ch -- Layer
        at com.google.common.base.Preconditions.checkState(Preconditions.java:145)
        at org.sonar.java.resolve.Convert.innerClassName(Convert.java:56)
        at org.sonar.java.resolve.BytecodeCompleter.getClassSymbol(BytecodeCompleter.java:164)
        at org.sonar.java.resolve.BytecodeVisitor.getClassSymbol(BytecodeVisitor.java:63)
        at org.sonar.java.resolve.BytecodeVisitor.defineInnerClass(BytecodeVisitor.java:164)
        at org.sonar.java.resolve.BytecodeVisitor.visitInnerClass(BytecodeVisitor.java:148)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:679)
        at org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
        at org.sonar.java.resolve.BytecodeCompleter.complete(BytecodeCompleter.java:103)
        at org.sonar.java.resolve.JavaSymbol.complete(JavaSymbol.java:108)
        at org.sonar.java.resolve.JavaSymbol.isFlag(JavaSymbol.java:243)
        at org.sonar.java.resolve.JavaSymbol.isDeprecated(JavaSymbol.java:224)
        at org.sonar.java.checks.CallToDeprecatedMethodCheck.isDeprecated(CallToDeprecatedMethodCheck.java:80)
        at org.sonar.java.checks.CallToDeprecatedMethodCheck.visitNode(CallToDeprecatedMethodCheck.java:64)
        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.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.checks.CallToDeprecatedMethodCheck.scanFile(CallToDeprecatedMethodCheck.java:51)
        at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:127)
        at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84)
        ... 65 more

As a side note this trace is obviously coming from ant and there s no such error message logged by sonar (those are usualy prefixed by [sonar:sonar] as you can see below).
Once again this seems to be related to the 3rd party Library:

import ChartDirector.Layer;
And here i see the same strange class-File combination, as there's a ch.class and a Layer.class and both contain (according to decompilation) the Layer JavaClass.


Strange enough is that some other files got errors during the analysis too, but didn't break the build, e.g. this message right before the ant side stack trace:

[sonar:sonar] 08:13:00.204 ERROR - Unable to create symbol table for : ...HotspotVisualizationChartFactory.java
[sonar:sonar] java.lang.IllegalStateException: Error short name does not include outerclass name : az -- DrawArea
[sonar:sonar]   at com.google.common.base.Preconditions.checkState(Preconditions.java:145) ~[sonar-plugin-api-deps3628265800778030260jar:na]
[sonar:sonar]   at org.sonar.java.resolve.Convert.innerClassName(Convert.java:56) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.BytecodeCompleter.getClassSymbol(BytecodeCompleter.java:164) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.BytecodeVisitor.getClassSymbol(BytecodeVisitor.java:63) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.BytecodeVisitor.defineInnerClass(BytecodeVisitor.java:164) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.BytecodeVisitor.visitInnerClass(BytecodeVisitor.java:148) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.objectweb.asm.ClassReader.accept(ClassReader.java:679) ~[asm-debug-all-5.0.3.jar:5.0.3]
[sonar:sonar]   at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) ~[asm-debug-all-5.0.3.jar:5.0.3]
[sonar:sonar]   at org.sonar.java.resolve.BytecodeCompleter.complete(BytecodeCompleter.java:103) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.JavaSymbol.complete(JavaSymbol.java:108) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.JavaType.getSymbol(JavaType.java:77) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.Resolve.findMethod(Resolve.java:405) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.Resolve.findMethod(Resolve.java:393) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.TypeAndReferenceSolver.resolveMethodSymbol(TypeAndReferenceSolver.java:230) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethodInvocation(TypeAndReferenceSolver.java:204) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:82) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitExpressionStatement(BaseTreeVisitor.java:101) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.TypeAndReferenceSolver.visitExpressionStatement(TypeAndReferenceSolver.java:188) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.statement.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:65) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:77) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethod(TypeAndReferenceSolver.java:120) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:218) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.TypeAndReferenceSolver.visitClass(TypeAndReferenceSolver.java:129) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:198) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:55) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:63) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:111) ~[java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84) [java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67) [java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:135) [java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.java.JavaSquid.scan(JavaSquid.java:128) [java-squid-3.10.jar:na]
[sonar:sonar]   at org.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:90) [sonar-java-plugin-3.10.jar:na]
[sonar:sonar]   at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:98) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:185) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:243) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:238) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:228) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.task.ScanTask.execute(ScanTask.java:55) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:132) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:117) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:122) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:79) [sonar-batch-shaded-5.3.jar:na]
[sonar:sonar]   at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) [sonar-runner-batch6197427356335760607.jar:na]
[sonar:sonar]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_45]
[sonar:sonar]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_45]
[sonar:sonar]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
[sonar:sonar]   at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
[sonar:sonar]   at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) [sonar-ant-task.jar:na]
[sonar:sonar]   at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_45]
[sonar:sonar]   at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.runner.api.Runner.execute(Runner.java:100) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.ant.SonarTask.launchAnalysis(SonarTask.java:53) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.sonar.ant.SonarTask.execute(SonarTask.java:48) [sonar-ant-task.jar:na]
[sonar:sonar]   at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) [ant.jar:1.9.6]
[sonar:sonar]   at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
[sonar:sonar]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
[sonar:sonar]   at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
[sonar:sonar]   at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
[sonar:sonar]   at org.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) [ant.jar:na]
[sonar:sonar]   at org.apache.tools.ant.Project.executeTargets(Project.java:1260) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441) [ant.jar:na]
[sonar:sonar]   at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) [ant.jar:1.9.6]
[sonar:sonar]   at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
[sonar:sonar]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45]
[sonar:sonar]   at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45]
[sonar:sonar]   at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
[sonar:sonar]   at org.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Project.executeTarget(Project.java:1376) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) [ant.jar:na]
[sonar:sonar]   at org.apache.tools.ant.Project.executeTargets(Project.java:1260) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Main.runBuild(Main.java:853) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.Main.startAnt(Main.java:235) [ant.jar:1.9.6]
[sonar:sonar]   at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285) [ant-launcher.jar:na]
[sonar:sonar]   at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112) [ant-launcher.jar:na]


So i have 2 Issues:
  1. the Exception in the log (wich may be related to a wierd package naming?)
  2. a broken build due to the parsing problems (wich was not the case in older JavaPlugin-Versions)
Can you help me with any of them?


Nicolas Peru

unread,
Feb 12, 2016, 3:16:52 AM2/12/16
to Daniel Geißler, SonarQube
Hi, 

Please upgrade to version 3.10 of java plugin and tell us if the problem persist. 

Cheers,

Nicolas Peru

unread,
Feb 12, 2016, 3:22:47 AM2/12/16
to Daniel Geißler, SonarQube
Hi again, 
sorry, given the length of the message and the first error I skipped the fact that you encounter an issue with class name reading from bytecode. This seems to be a problem depending of inner class names. Do you use some scala dependencies ? or have (even transitively) some class names containing "odd" characters like (particularly $) ? 

Cheers,

Daniel Geißler

unread,
Feb 12, 2016, 3:34:50 AM2/12/16
to SonarQube
Hi Nicolas,

thank you for the quick response.

As for your first question - no we don't have any scala dependencies and as you can see way down in the first posting (i know it's realy long) i already tried the JavaPlugin 3.10 with SonarQube 5.3.
For the strange naming i am not entirely sure how the obfuscated code in the library behaves, in our own code base there ain't no $ signs in the classes or inner classes.

kind regards

Nicolas Peru

unread,
Feb 15, 2016, 9:41:35 AM2/15/16
to Daniel Geißler, SonarQube
Hi Daniel, 

if the code is obfuscated in 3rd party libraries it should be in a coherent way so that should not be an issue. 
It seems that the 3rd party library is causing issue here because we can't manage to solve the class names properly for some reason: would you be able to share the name of that library and the source code using it  ? 

Even better if you can make a small reproducer so we can try to reproduce the issue. I have too sparse information here to try to understand what is going on. 

Thanks.

--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarqube/488a99e8-3d11-4607-b683-08c170711305%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Daniel G.

unread,
Feb 17, 2016, 2:21:26 PM2/17/16
to SonarQube
Hi Nicolas,

the 3rd party library is a older (but looking at the structure - simmilar) version of Chartdirector from http://www.advsofteng.com/download.html.
The problematic classes make use of the DrawArea or Layout classes (just import and declare a variable).

Let me know if this information helps you or if you need more input.

regards
Daniel

Daniel G.

unread,
Mar 8, 2016, 11:43:48 AM3/8/16
to SonarQube
Hi Nicolas,

i found some time to create a minimal test project with maven (altough our build is using ant).

We are using a slightly older version of CharDirector but the included one in version 5.0.2 is from the official website (http://www.advsofteng.com/download_v5.html) and it does the job.
I did some testing with newer versions (5.1, 6.0) too and all failed with similar errors.

So a simple `mvn clean compile sonar:sonar` against a local SonarQube instance with JavaPlugin 3.10 should reproduce the problems.

I hope that helps, any feedback is appreciated.

Daniel
Sonar-Error-Test.zip

Daniel G.

unread,
Mar 18, 2016, 9:50:48 AM3/18/16
to SonarQube
Hey Nicolas,

any news on this? Did you try to reproduce the issue?

kind regards

Daniel G.

unread,
Apr 22, 2016, 8:32:04 AM4/22/16
to SonarQube
I'm sorry if i am too pushy, but i was hoping to get at least some feedback after over 2 months?!

kind regards.
...

Daniel G.

unread,
May 10, 2016, 9:43:04 AM5/10/16
to SonarQube
Hi,

just another update. 
The behavior got broken from sonar-java-plugin 3.8 to 3.9. Even the latest build 3.13.1 has problems analysing the above mentioned example project.

I also managed to isolate a rule that triggers the error (not sure if it is the only one).
It is: squid:CallToDeprecatedMethod @Deprecated" code should not be used.

kind regards
Daniel

onlyh...@gmail.com

unread,
Jun 6, 2016, 8:59:50 AM6/6/16
to SonarQube
Hello Sonarqube Team,

Actually I also have this problem with Sonar Cube + ChartDirector lib:

My build problems started around February.
I've compared the lib used:
Last stable build
java-squid-3.1.jarjava-squid-3.9.jar
sonar-java-plugin-3.1.jarsonar-java-plugin-3.9.jar
sonar-runner-batch5048110312473122965.jarsonar-runner-batch5792189505334334428.jar

onlyh...@gmail.com

unread,
Jun 6, 2016, 9:03:29 AM6/6/16
to SonarQube, onlyh...@gmail.com
Sorry, accidentally I've posted my reply too early.

The error message that I get is:
Caused by: Error short name does not include outerclass name : cy -- ChartViewer


On Monday, June 6, 2016 at 2:59:50 PM UTC+2, onlyh...@gmail.com wrote:
Hello Sonarqube Team,

Actually I also have this problem with Sonar Cube + ChartDirector lib:

My build problems started around February.
I've compared the lib used:
Last stable build                                                    Next build

G. Ann Campbell

unread,
Jun 13, 2016, 3:50:48 AM6/13/16
to SonarQube, onlyh...@gmail.com
Hi,

The most recent version of the Java plugin is 3.14. Can you try again with that version?


Ann

Daniel G.

unread,
Jun 17, 2016, 9:51:12 AM6/17/16
to SonarQube
Hi Ann,

in the minimal example i posted the 3.14 version looks promising - no errors so far.
The real world project is working too, seems to be in the state as of before 3.8.

The mentioned exception is still to be seen in the Log-Files but the analysis does not break because of this.
Just for the record the Stack i m having in my Logs:
[sonar:sonar] 15:44:31.605 ERROR - Unable to create symbol table for : ...\graphixSearchTree\UIGraphixSearchTreeImageMap.java

[sonar:sonar] java.lang.IllegalStateException: Error short name does not include outerclass name : az -- DrawArea
[sonar:sonar] at com.google.common.base.Preconditions.checkState(Preconditions.java:145) ~[sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.java.resolve.Convert.innerClassName(Convert.java:56) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.BytecodeCompleter.getClassSymbol(BytecodeCompleter.java:160) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.BytecodeVisitor.getClassSymbol(BytecodeVisitor.java:63) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.BytecodeVisitor.defineInnerClass(BytecodeVisitor.java:164) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.BytecodeVisitor.visitInnerClass(BytecodeVisitor.java:148) ~[java-frontend-3.14.jar:na]

[sonar:sonar] at org.objectweb.asm.ClassReader.accept(ClassReader.java:679) ~[asm-debug-all-5.0.3.jar:5.0.3]
[sonar:sonar] at org.objectweb.asm.ClassReader.accept(ClassReader.java:506) ~[asm-debug-all-5.0.3.jar:5.0.3]
[sonar:sonar] at org.sonar.java.resolve.BytecodeCompleter.complete(BytecodeCompleter.java:99) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.JavaSymbol.complete(JavaSymbol.java:110) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.JavaType.getSymbol(JavaType.java:75) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.Resolve.findMethod(Resolve.java:428) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.Resolve.findMethod(Resolve.java:410) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveMethodSymbol(TypeAndReferenceSolver.java:256) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethodInvocation(TypeAndReferenceSolver.java:211) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.expression.MethodInvocationTreeImpl.accept(MethodInvocationTreeImpl.java:82) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:310) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:280) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:273) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitTypeCast(TypeAndReferenceSolver.java:722) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.expression.TypeCastExpressionTreeImpl.accept(TypeCastExpressionTreeImpl.java:112) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBinaryExpression(BaseTreeVisitor.java:208) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitBinaryExpression(TypeAndReferenceSolver.java:530) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.expression.BinaryExpressionTreeImpl.accept(BinaryExpressionTreeImpl.java:70) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:310) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:280) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.resolveAs(TypeAndReferenceSolver.java:273) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitVariable(TypeAndReferenceSolver.java:675) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.declaration.VariableTreeImpl.accept(VariableTreeImpl.java:184) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:77) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitMethod(TypeAndReferenceSolver.java:129) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:218) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.TypeAndReferenceSolver.visitClass(TypeAndReferenceSolver.java:138) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:198) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:43) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:55) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:63) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:112) ~[java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84) [java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67) [java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:143) [java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.java.JavaSquid.scan(JavaSquid.java:136) [java-frontend-3.14.jar:na]
[sonar:sonar] at org.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:95) [sonar-java-plugin-3.14.jar:na]
[sonar:sonar] at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:119) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:194) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:233) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:228) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:226) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:221) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:64) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:51) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:125) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:173) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) [sonar-batch-maven-compat-4.5.7.jar:na]
[sonar:sonar] at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48) [sonar-runner-batch8084206821608467970.jar:na]
[sonar:sonar] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_74]
[sonar:sonar] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_74]
[sonar:sonar] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_74]
[sonar:sonar] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_74]

[sonar:sonar] at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75) [sonar-ant-task.jar:na]
[sonar:sonar] at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_74]

[sonar:sonar] at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.runner.api.Runner.execute(Runner.java:100) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.ant.SonarTask.launchAnalysis(SonarTask.java:53) [sonar-ant-task.jar:na]
[sonar:sonar] at org.sonar.ant.SonarTask.execute(SonarTask.java:48) [sonar-ant-task.jar:na]
[sonar:sonar] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) [ant.jar:1.9.6]
[sonar:sonar] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
[sonar:sonar] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_74]
[sonar:sonar] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_74]

[sonar:sonar] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
[sonar:sonar] at org.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) [ant.jar:na]
[sonar:sonar] at org.apache.tools.ant.Project.executeTargets(Project.java:1260) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:441) [ant.jar:na]
[sonar:sonar] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293) [ant.jar:1.9.6]
[sonar:sonar] at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[na:na]
[sonar:sonar] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_74]
[sonar:sonar] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_74]

[sonar:sonar] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) [ant.jar:na]
[sonar:sonar] at org.apache.tools.ant.Task.perform(Task.java:348) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Target.execute(Target.java:435) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Target.performTasks(Target.java:456) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Project.executeTarget(Project.java:1376) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) [ant.jar:na]
[sonar:sonar] at org.apache.tools.ant.Project.executeTargets(Project.java:1260) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Main.runBuild(Main.java:853) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.Main.startAnt(Main.java:235) [ant.jar:1.9.6]
[sonar:sonar] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285) [ant-launcher.jar:na]
[sonar:sonar] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112) [ant-launcher.jar:na]

After all the sonar-java-plugin 3.14 fixed the immediate problem of broken builds and is back to the state of 3.8 regarding the parsing issues (wich is ok for me).

kind regards
Daniel

Daniel G.

unread,
Jun 22, 2016, 3:19:38 AM6/22/16
to SonarQube
Hi Ann,

i am disappointed to say that, but not that i did further testing on how the issues evolve with the update of the java plugin i have to say the error seems to be only fixed for the rule i mentioned earlier.
With our full quality profile the problem persists and is reproduceable with the small maven project i posted earlier:

Did you only change a single rule or did you try to catch the error at a more general stage?

Here s a snapshot from the StackTrace of the reproducer:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.007 s
[INFO] Finished at: 2016-06-22T09:14:32+02:00
[INFO] Final Memory: 52M/277M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.1:sonar (default-cli) on project ChartDirector-Sonar-Test: SonarQube is unable to analyze file : 'C:\sonar\chartdirector\Sonar-Error-Test\src\main\java\de\salt\sonar\test\LayerConfiguration.java': Error short name does not include outerclass name : fj -- Layer -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.1:sonar (default-cli) on project ChartDirector-Sonar-Test: SonarQube is unable to analyze file : 'C:\sonar\chartdirector\Sonar-Error-Test\src\main\java\de\salt\sonar\test\LayerConfiguration.java'
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)

Can you post a Ticket or smth we can follow to see the progress?
Do you need any further informations?

It's been very quiet on this topic so i wondered if there was smth. goin on. 

Nicolas Peru

unread,
Jun 24, 2016, 4:09:02 AM6/24/16
to Daniel G., SonarQube
Hi Daniel, 

I am trying to investigate your issue but I can't find the reproducer project you are talking about. Can you please resend it so we can test it ? 

By the way, which JVM are you using ? 

Thanks. 

--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
--
Nicolas PERU | SonarSource
Senior Developer
http://sonarsource.com

s.t...@gmail.com

unread,
Jul 5, 2016, 1:59:25 PM7/5/16
to SonarQube, daniel.g...@gmail.com
Hi Nicolas,

I am having the same problem (also using ChartDirector), and am very interested in finding a solution for the problem as it has been messing with my Sonar analysis for quite some time. The reproducer project can be found in Daniel G.'s message from March 8th.

Kind regards,
Tekla

Daniel G.

unread,
Jul 18, 2016, 3:59:38 AM7/18/16
to SonarQube
Hi Nicolas,

as Tekla already stated i posted a small maven project in this thread to show the problem. (here is the direct link).
As a side note you may need to active some squid rules to be able to reproduce the issue - i m not sure if the default ruleset is enough.

For the JDK, i was testing with Oracle JDK 1.8.0_92 on my local Windows machine, and with Open JDK 1.8.0.71-1.b15.el6_7.x86_64 on a Fedora Linux Box.

Any feedback is appreciated
Daniel

Nicolas Peru

unread,
Aug 17, 2016, 4:59:27 AM8/17/16
to Daniel G., SonarQube
Hi Daniel, 

Thanks for the reproducer. Having a closer look at it led me to create the following ticket : https://jira.sonarsource.com/browse/SONARJAVA-1821 

Basically what is happening is that we are trying to compute some inner class name with the assumption that it will always contains the enclosing class name. But this is not the case when you use this library as it is obfuscated in such a way that an inner class (let's call it X) of class Layer (so Layer$X.class ) has been renamed to fj.class and is perfectly referenced through bytecode.

So thanks for providing this corner case, it should be fixed for version 4.2

Cheers, 


--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

vo.fi...@gmail.com

unread,
Aug 20, 2016, 11:02:51 PM8/20/16
to SonarQube, daniel.g...@gmail.com
when is 4.2 slated to be released? thanks!

Johan "Johnnei"

unread,
Aug 21, 2016, 7:17:58 AM8/21/16
to SonarQube, daniel.g...@gmail.com, vo.fi...@gmail.com
Hi,

Currently the Request For Feedback for 4.2 is on going: https://groups.google.com/forum/#!topic/sonarqube/dg9pF7IIlpo
This also includes SONARJAVA-1821. If no major issues appear during the RFF (until the 23rd) the release will be fairly soon after that date.
I would highly recommend to test the release candidate version if at all possible to see if your issue is gone now.

Kind regards,

Johan.

Daniel G.

unread,
Aug 22, 2016, 2:47:17 AM8/22/16
to SonarQube
Hi Johan, Hi Nicolas,

if i understand this right there are no plans to backport this fix fro SonarQube 4.6 LTS Users?
As far as i can see the Java Plugin 4.x is SonarQube 5.6+ only?

kind regards
Daniel

Nicolas Peru

unread,
Aug 22, 2016, 2:50:51 AM8/22/16
to Daniel G., SonarQube
Hi Daniel, 

Indeed, there are absolutely no plan to backport this. The general policy for language plugins is to go forward and fix in next version. 
I can only recommend you to upgrade to LTS (and, for many many many reasons you should upgrade to 5.6, platform team made an amazing job on that one). 

Cheers, 

--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Daniel G.

unread,
Sep 16, 2016, 3:40:05 AM9/16/16
to SonarQube
Hi Nicolas,

thanks for the feedback. 
I'd like at least to leave the info here that the Java-Plugin 4.2 solved our Issue.

Even though we can not upgrade now, it s good to know this problem is out of the way once we are allowed to.

Not sure how a thread can be marked as "fixed", so ill leave just that comment here.

kind regards
Daniel
Reply all
Reply to author
Forward
0 new messages