19:50:26.989 ERROR: Unable to run check class org.sonar.java.checks.StringConcatenationInLoopCheck - S1643 on file 'xxxxx.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/ java.lang.ClassCastException: class org.sonar.java.model.expression.ParenthesizedTreeImpl cannot be cast to class org.sonar.plugins.java.api.tree.IdentifierTree (org.sonar.java.model.expression.ParenthesizedTreeImpl and org.sonar.plugins.java.api.tree.IdentifierTree are in unnamed module of loader org.sonar.classloader.ClassRealm @6e46d9f4) at org.sonar.java.checks.StringConcatenationInLoopCheck.getIdentifierTree(StringConcatenationInLoopCheck.java:101) at org.sonar.java.checks.StringConcatenationInLoopCheck.getIdentifierTree(StringConcatenationInLoopCheck.java:97) at org.sonar.java.checks.StringConcatenationInLoopCheck.isNotLoopLocalVar(StringConcatenationInLoopCheck.java:66) at org.sonar.java.checks.StringConcatenationInLoopCheck.visitAssignmentExpression(StringConcatenationInLoopCheck.java:59) at org.sonar.java.model.expression.AssignmentExpressionTreeImpl.accept(AssignmentExpressionTreeImpl.java:70) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitExpressionStatement(BaseTreeVisitor.java:101) at org.sonar.java.model.statement.ExpressionStatementTreeImpl.accept(ExpressionStatementTreeImpl.java:64) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:75) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitIfStatement(BaseTreeVisitor.java:107) at org.sonar.java.model.statement.IfStatementTreeImpl.accept(IfStatementTreeImpl.java:123) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:75) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitForStatement(BaseTreeVisitor.java:157) at org.sonar.java.checks.StringConcatenationInLoopCheck.visitForStatement(StringConcatenationInLoopCheck.java:139) at org.sonar.java.model.statement.ForStatementTreeImpl.accept(ForStatementTreeImpl.java:117) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitBlock(BaseTreeVisitor.java:85) at org.sonar.java.model.statement.BlockTreeImpl.accept(BlockTreeImpl.java:75) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitMethod(BaseTreeVisitor.java:80) at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:222) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitClass(BaseTreeVisitor.java:68) at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:220) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:34) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:52) at org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:185) at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:40) at org.sonar.java.checks.StringConcatenationInLoopCheck.scanFile(StringConcatenationInLoopCheck.java:54) at org.sonar.java.model.VisitorsBridge.lambda$runScanner$0(VisitorsBridge.java:154) at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159) at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:154) at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:128) at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127) at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79) at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130) at org.sonar.java.JavaSquid.scan(JavaSquid.java:116) at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:105) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:392) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:388) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:385) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:357) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:150) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) at com.sun.proxy.$Proxy0.execute(Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189) at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138) at org.sonarsource.scanner.cli.Main.execute(Main.java:112) at org.sonarsource.scanner.cli.Main.execute(Main.java:75) at org.sonarsource.scanner.cli.Main.main(Main.java:61)