ERROR: Unable to run check class org.sonar.java.checks.ChangeMethodContractCheck - S2638 on file ERROR: Unable to run check class org.sonar.java.checks.ChangeMethodContractCheck - S2638 on file

Template for a good bug report, formatted with Markdown:

  • versions used (SonarQube, Scanner, Plugin, and any relevant extension)
  • error observed (wrap logs/code around triple quote ``` for proper formatting)
  • steps to reproduce
  • potential workaround

P.S.: use the #bug:fault sub-category if you’re hitting a specific crash/error , or the #bug:fp sub-category for rules-related behaviour

Sonarqube: * Enterprise Edition * Version 8.7 (build 41497)
Scanner: 4.6.2.2472

Please see attached java file with error during analysis:
FmtTypConvrtr.txt (3.5 KB)

 ERROR: Unable to run check class org.sonar.java.checks.ChangeMethodContractCheck - S2638 on file 'path/to/FmtTypConvrtr.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
 java.lang.NullPointerException: null
 	at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:353)
 	at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334)
 	at org.sonar.java.se.NullableAnnotationUtils.isAnnotatedNonNull(NullableAnnotationUtils.java:150)
 	at org.sonar.java.checks.ChangeMethodContractCheck.checkContractChange(ChangeMethodContractCheck.java:63)
 	at org.sonar.java.checks.ChangeMethodContractCheck.visitNode(ChangeMethodContractCheck.java:49)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$visit$6(VisitorsBridge.java:289)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$forEach$9(VisitorsBridge.java:304)
 	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:168)
 	at org.sonar.java.model.VisitorsBridge.access$100(VisitorsBridge.java:63)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.forEach(VisitorsBridge.java:304)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:291)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:275)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:295)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:275)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:295)
 	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.run(VisitorsBridge.java:266)
 	at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:150)
 	at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:123)
 	at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:77)
 	at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:115)
 	at org.sonar.java.JavaSquid.scan(JavaSquid.java:108)
 	at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:96)
 	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:389)
 	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:385)
 	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:382)
 	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:354)
 	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:144)
 	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)

Thanks,
Lea

Hi,

First, your version is past EOL. You should upgrade to either the latest version or the current LTS at your earliest convenience. Your upgrade path is:

8.7 → 8.9.2 → 9.1 (last step optional)

If your problem persists after you upgrade please come back to us with a fresh stacktrace.

 
Ann

Thanks Ann.

We recently upgraded to Sonarqube

  • Enterprise Edition Version 8.9.2 (build 46101)

Please see the new logs:

ERROR: Unable to run check class org.sonar.java.checks.ChangeMethodContractCheck - S2638 on file 'path/to/FmtTypConvrtr.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/	
java.lang.NullPointerException: null	
	at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:353)
	at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334)
	at org.sonar.java.se.NullableAnnotationUtils.isAnnotatedNonNull(NullableAnnotationUtils.java:152)
	at org.sonar.java.checks.ChangeMethodContractCheck.checkContractChange(ChangeMethodContractCheck.java:67)
	at org.sonar.java.checks.ChangeMethodContractCheck.visitNode(ChangeMethodContractCheck.java:53)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$visit$6(VisitorsBridge.java:287)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$forEach$9(VisitorsBridge.java:303)
	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159)
	at org.sonar.java.model.VisitorsBridge.access$100(VisitorsBridge.java:62)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.forEach(VisitorsBridge.java:303)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:289)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:273)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:293)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:273)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:293)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.run(VisitorsBridge.java:264)
	at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:139)
	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)```

Thanks,
Lea

Hi,

Thanks for the follow up. This is already tagged for the language specialists. Now we just need to wait for them to get here.

 
Ann

Thanks Ann…

We also encountered below, should I need to create new ticket for this? Please advise.Thanks.

ERROR: Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor -  on file 'path/to/SgnTypCnvrtr.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/	
java.lang.NullPointerException: null	
	at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:353)
	at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334)
	at org.sonar.java.se.NullableAnnotationUtils.isAnnotatedNonNull(NullableAnnotationUtils.java:152)
	at org.sonar.java.se.ExplodedGraphWalker.handleSpecialMethods(ExplodedGraphWalker.java:814)
	at org.sonar.java.se.ExplodedGraphWalker.executeMethodInvocation(ExplodedGraphWalker.java:799)
	at org.sonar.java.se.ExplodedGraphWalker.visit(ExplodedGraphWalker.java:635)
	at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:262)
	at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:218)
	at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:210)
	at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:84)
	at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:70)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:100)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:125)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:102)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:83)
	at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:69)
	at org.sonar.java.se.SymbolicExecutionVisitor.scanFile(SymbolicExecutionVisitor.java:59)
	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)

Hi,

I don’t think so. It would be helpful if you could create reproducers tho: the minimal amount of code required to cause these errors in analysis.

 
Ann

Hello @lea.i.abrugena

Thanks for taking the time to report this issue. There is already a ticket for it: SONARJAVA-3872.

And the good news is that it is already fixed in version >= 7.2 of the analyzer, available in SonarQube 9.1.

Best,
Quentin

Thanks Quintin,

I see that SONARJAVA-3872 fixed the issue

ERROR: Unable to run check class org.sonar.java.se.SymbolicExecutionVisitor 	

Does this also covers the fix for original issue reported on this ticket? Please confirm.

ERROR: Unable to run check class org.sonar.java.checks.ChangeMethodContractCheck - S2638

Thanks again,
Lea

Yes, it should cover the two cases.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.