I am running the gradle sonarqube plugin (latest version) on my java code and get a couple of stacktraces:
Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor - on file 'request-router/src/main/java/nl/rws/mkkdl/request/router/router/configuration/RoutingClient.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.UnsupportedOperationException: PARAMETERIZED_TYPE 31
at org.sonar.java.cfg.CFG.build(CFG.java:691)
at org.sonar.java.cfg.CFG.buildRecordPattern(CFG.java:1315)
at org.sonar.java.cfg.CFG.buildPattern(CFG.java:1285)
at org.sonar.java.cfg.CFG.build(CFG.java:688)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.buildSwitch(CFG.java:844)
at org.sonar.java.cfg.CFG.buildSwitchExpression(CFG.java:829)
at org.sonar.java.cfg.CFG.build(CFG.java:588)
at org.sonar.java.cfg.CFG.buildReturnStatement(CFG.java:699)
at org.sonar.java.cfg.CFG.build(CFG.java:522)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.build(CFG.java:513)
at org.sonar.java.cfg.CFG.<init>(CFG.java:147)
at org.sonar.java.cfg.CFG.build(CFG.java:505)
at org.sonar.java.model.declaration.MethodTreeImpl.cfg(MethodTreeImpl.java:253)
at org.sonar.java.model.declaration.MethodTreeImpl.cfg(MethodTreeImpl.java:52)
at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:224)
at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:217)
at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:69)
at org.sonar.java.se.SymbolicExecutionVisitor.visitMethod(SymbolicExecutionVisitor.java:58)
at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:229)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:31)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitClass(BaseTreeVisitor.java:67)
at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:239)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:31)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:49)
at org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:203)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:53)
at org.sonar.java.model.VisitorsBridge.lambda$runScanner$3(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:290)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:268)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:131)
at org.sonar.java.JavaFrontend.scanAsBatchCallback(JavaFrontend.java:243)
at org.sonar.java.JavaFrontend.lambda$scanBatch$0(JavaFrontend.java:234)
at org.sonar.java.model.JParserConfig$Batch$1.acceptAST(JParserConfig.java:187)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1134)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:778)
at org.eclipse.jdt.core.dom.CompilationUnitResolver$ECJCompilationUnitResolver.resolve(CompilationUnitResolver.java:84)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:1109)
at org.sonar.java.model.JParserConfig$Batch.parse(JParserConfig.java:173)
at org.sonar.java.JavaFrontend.scanBatch(JavaFrontend.java:234)
at org.sonar.java.JavaFrontend.scanInBatches(JavaFrontend.java:223)
at org.sonar.java.JavaFrontend.scanAsBatch(JavaFrontend.java:190)
at org.sonar.java.JavaFrontend.scan(JavaFrontend.java:165)
at org.sonar.plugins.java.JavaSensor.execute(JavaSensor.java:112)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:69)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:80)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:212)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:208)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:205)
at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:178)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringScannerContainer.doAfterStart(SpringScannerContainer.java:339)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:142)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:150)
at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:67)
at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:53)
Unable to run check class org.sonar.java.checks.ParameterReassignedToCheck - S1226 on file 'request-router/src/main/java/nl/rws/mkkdl/request/router/router/configuration/RoutingClient.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.UnsupportedOperationException: PARAMETERIZED_TYPE 31
at org.sonar.java.cfg.CFG.build(CFG.java:691)
at org.sonar.java.cfg.CFG.buildRecordPattern(CFG.java:1315)
at org.sonar.java.cfg.CFG.buildPattern(CFG.java:1285)
at org.sonar.java.cfg.CFG.build(CFG.java:688)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.buildSwitch(CFG.java:844)
at org.sonar.java.cfg.CFG.buildSwitchExpression(CFG.java:829)
at org.sonar.java.cfg.CFG.build(CFG.java:588)
at org.sonar.java.cfg.CFG.buildReturnStatement(CFG.java:699)
at org.sonar.java.cfg.CFG.build(CFG.java:522)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.build(CFG.java:513)
at org.sonar.java.cfg.CFG.<init>(CFG.java:147)
at org.sonar.java.cfg.CFG.build(CFG.java:505)
at org.sonar.java.model.declaration.MethodTreeImpl.cfg(MethodTreeImpl.java:253)
at org.sonar.java.model.declaration.MethodTreeImpl.cfg(MethodTreeImpl.java:52)
at org.sonar.java.checks.ParameterReassignedToCheck.visitMethod(ParameterReassignedToCheck.java:62)
at org.sonar.java.model.declaration.MethodTreeImpl.accept(MethodTreeImpl.java:229)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:31)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitClass(BaseTreeVisitor.java:67)
at org.sonar.java.model.declaration.ClassTreeImpl.accept(ClassTreeImpl.java:239)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:31)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.visitCompilationUnit(BaseTreeVisitor.java:49)
at org.sonar.java.model.JavaTree$CompilationUnitTreeImpl.accept(JavaTree.java:203)
at org.sonar.plugins.java.api.tree.BaseTreeVisitor.scan(BaseTreeVisitor.java:37)
at org.sonar.java.checks.ParameterReassignedToCheck.scanFile(ParameterReassignedToCheck.java:52)
at org.sonar.java.model.VisitorsBridge.lambda$runScanner$3(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:290)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:268)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:131)
at org.sonar.java.JavaFrontend.scanAsBatchCallback(JavaFrontend.java:243)
at org.sonar.java.JavaFrontend.lambda$scanBatch$0(JavaFrontend.java:234)
at org.sonar.java.model.JParserConfig$Batch$1.acceptAST(JParserConfig.java:187)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1134)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:778)
at org.eclipse.jdt.core.dom.CompilationUnitResolver$ECJCompilationUnitResolver.resolve(CompilationUnitResolver.java:84)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:1109)
at org.sonar.java.model.JParserConfig$Batch.parse(JParserConfig.java:173)
at org.sonar.java.JavaFrontend.scanBatch(JavaFrontend.java:234)
at org.sonar.java.JavaFrontend.scanInBatches(JavaFrontend.java:223)
at org.sonar.java.JavaFrontend.scanAsBatch(JavaFrontend.java:190)
at org.sonar.java.JavaFrontend.scan(JavaFrontend.java:165)
at org.sonar.plugins.java.JavaSensor.execute(JavaSensor.java:112)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:69)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:80)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:212)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:208)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:205)
at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:178)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringScannerContainer.doAfterStart(SpringScannerContainer.java:339)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:142)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:150)
at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:67)
at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:53)
Unable to run check class org.sonar.java.ast.visitors.FileLinesVisitor - on file 'request-router/src/main/java/nl/rws/mkkdl/request/router/router/configuration/RoutingClient.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.UnsupportedOperationException: PARAMETERIZED_TYPE 31
at org.sonar.java.cfg.CFG.build(CFG.java:691)
at org.sonar.java.cfg.CFG.buildRecordPattern(CFG.java:1315)
at org.sonar.java.cfg.CFG.buildPattern(CFG.java:1285)
at org.sonar.java.cfg.CFG.build(CFG.java:688)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.buildSwitch(CFG.java:844)
at org.sonar.java.cfg.CFG.buildSwitchExpression(CFG.java:829)
at org.sonar.java.cfg.CFG.build(CFG.java:588)
at org.sonar.java.cfg.CFG.buildReturnStatement(CFG.java:699)
at org.sonar.java.cfg.CFG.build(CFG.java:522)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.build(CFG.java:513)
at org.sonar.java.cfg.CFG.<init>(CFG.java:147)
at org.sonar.java.cfg.CFG.buildCFG(CFG.java:499)
at org.sonar.java.ast.visitors.FileLinesVisitor.computeExecutableLines(FileLinesVisitor.java:174)
at org.sonar.java.ast.visitors.FileLinesVisitor.visitNode(FileLinesVisitor.java:133)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:122)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:99)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:122)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:99)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:80)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:66)
at org.sonar.java.ast.visitors.FileLinesVisitor.scanFile(FileLinesVisitor.java:93)
at org.sonar.java.model.VisitorsBridge.lambda$runScanner$3(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:290)
at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:285)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:268)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:131)
at org.sonar.java.JavaFrontend.scanAsBatchCallback(JavaFrontend.java:243)
at org.sonar.java.JavaFrontend.lambda$scanBatch$0(JavaFrontend.java:234)
at org.sonar.java.model.JParserConfig$Batch$1.acceptAST(JParserConfig.java:187)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:1134)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve(CompilationUnitResolver.java:778)
at org.eclipse.jdt.core.dom.CompilationUnitResolver$ECJCompilationUnitResolver.resolve(CompilationUnitResolver.java:84)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:1109)
at org.sonar.java.model.JParserConfig$Batch.parse(JParserConfig.java:173)
at org.sonar.java.JavaFrontend.scanBatch(JavaFrontend.java:234)
at org.sonar.java.JavaFrontend.scanInBatches(JavaFrontend.java:223)
at org.sonar.java.JavaFrontend.scanAsBatch(JavaFrontend.java:190)
at org.sonar.java.JavaFrontend.scan(JavaFrontend.java:165)
at org.sonar.plugins.java.JavaSensor.execute(JavaSensor.java:112)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:69)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:80)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:212)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:208)
at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:205)
at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:178)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringScannerContainer.doAfterStart(SpringScannerContainer.java:339)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:142)
at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:227)
at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:206)
at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:150)
at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:67)
at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:53)
Unable to run check class org.sonar.java.checks.DeadStoreCheck - S1854 on file 'request-router/src/main/java/nl/rws/mkkdl/request/router/router/configuration/RoutingClient.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.UnsupportedOperationException: PARAMETERIZED_TYPE 31
at org.sonar.java.cfg.CFG.build(CFG.java:691)
at org.sonar.java.cfg.CFG.buildRecordPattern(CFG.java:1315)
at org.sonar.java.cfg.CFG.buildPattern(CFG.java:1285)
at org.sonar.java.cfg.CFG.build(CFG.java:688)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.sonar.java.cfg.CFG.buildSwitch(CFG.java:844)
at org.sonar.java.cfg.CFG.buildSwitchExpression(CFG.java:829)
at org.sonar.java.cfg.CFG.build(CFG.java:588)
I tried to reduce the code to a minimal version:
import java.util.List;
public final class RoutingClient {
public Result<List<String>> getRoutes() {
Result<String> tokenResult = getTokenResult();
return switch (tokenResult) {
case ErrorResult<String>(Exception exception) -> new ErrorResult<>(exception);
case OkResult<String>(String tokenString) -> new OkResult<>(List.of(tokenString));
};
}
private Result<String> getTokenResult() {
return new OkResult<>("token");
}
public sealed interface Result<T> permits OkResult, ErrorResult { }
public record ErrorResult<T>(Exception exception) implements Result<T> { }
public record OkResult<T>(T result) implements Result<T> {}
}
The errors do not occur when the generics are removed