Sonarsource/sonar-scanner-cli:latest, java.lang.NoClassDefFoundError and CheckRegistrar

I use the container: sonarsource/sonar-scanner-cli:latest why does this fail.

https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-6.2.1.4610-windows-x64.zip
which works fine from local.

From the latest tag I see it it shares hash with the 11.1.1.1661_6.2.1 tag which should be the same.

Identical sonar-project.properties file

Using docker image sha256:3799521e5ac627eeae7bf83028dbb7a3594bef71c9c7b83ea37de21282d91f2d for sonarsource/sonar-scanner-cli:latest with digest sonarsource/sonar-scanner-cli@sha256:0b90dedf01ef875d69a5a151f73d72b8288a319b39cdfd2ee32a729027a00785 ...
$ sonar-scanner
11:17:25.579 INFO  Scanner configuration file: /opt/sonar-scanner/conf/sonar-scanner.properties
11:17:25.583 INFO  Project root configuration file: /builds/id-pro/fido2/multitenant-fullstack-test/sonar-project.properties
11:17:25.595 INFO  SonarScanner CLI 6.2.1.4610
11:17:25.596 INFO  Java 17.0.12 Amazon.com Inc. (64-bit)
11:17:25.597 INFO  Linux 5.4.0-205-generic amd64
11:17:25.625 INFO  User cache: /builds/id-pro/fido2/multitenant-fullstack-test/.sonar/cache
11:17:26.440 INFO  JRE provisioning: os[linux], arch[x86_64]
11:17:28.958 INFO  Communicating with SonarQube Server 24.12.0.100206
11:17:29.207 INFO  Starting SonarScanner Engine...
11:17:29.208 INFO  Java 17.0.11 Eclipse Adoptium (64-bit)
11:17:29.962 INFO  Load global settings
11:17:30.234 INFO  Load global settings (done) | time=272ms
11:17:30.236 INFO  Server id: FCE87456-AWSiObnM0pgYZTHZpGDt
11:17:30.246 INFO  Loading required plugins
11:17:30.246 INFO  Load plugins index
11:17:30.366 INFO  Load plugins index (done) | time=120ms
11:17:30.367 INFO  Load/download plugins
11:17:30.939 INFO  Load/download plugins (done) | time=572ms
11:17:31.165 ERROR [stderr] Exception in thread "main" java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
11:17:31.165 ERROR [stderr] 	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
11:17:31.165 ERROR [stderr] 	at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.net.URLClassLoader.defineClass(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.net.URLClassLoader$1.run(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.net.URLClassLoader$1.run(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.security.AccessController.doPrivileged(Unknown Source)
11:17:31.165 ERROR [stderr] 	at java.base/java.net.URLClassLoader.findClass(Unknown Source)
11:17:31.165 ERROR [stderr] 	at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:135)
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:97)
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:86)
11:17:31.166 ERROR [stderr] 	at com.qualinsight.plugins.sonarqube.smell.plugin.SmellPlugin.define(SmellPlugin.java:59)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.ExtensionInstaller.installExtensionsForPlugins(ExtensionInstaller.java:64)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.ExtensionInstaller.install(ExtensionInstaller.java:51)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.SpringScannerContainer.addScannerExtensions(SpringScannerContainer.java:177)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.SpringScannerContainer.doBeforeStart(SpringScannerContainer.java:157)
11:17:31.166 ERROR [stderr] 	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:224)
11:17:31.166 ERROR [stderr] 	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:144)
11:17:31.166 ERROR [stderr] 	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:226)
11:17:31.166 ERROR [stderr] 	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:149)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:66)
11:17:31.166 ERROR [stderr] 	at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:52)
11:17:31.166 ERROR [stderr] Caused by: java.lang.ClassNotFoundException: org.sonar.plugins.java.api.CheckRegistrar
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:97)
11:17:31.166 ERROR [stderr] 	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:86)
11:17:31.167 ERROR [stderr] 	... 25 more
11:17:31.492 INFO  EXECUTION FAILURE
11:17:31.493 INFO  Total time: 5.916s

Hey there.

It looks like your issue is coming from a third-party plugin. You’ll probably want to get in touch directly with them to report any issues.

1 Like

But we do not have this plugin in our sonarqube and I use the default sonar-scanner container.
GitHub - QualInsight/qualinsight-plugins-sonarqube-smell: Code Smells plugin for SonarQube and companion Java library seems to be quite dead.

If you turn on DEBUG logging I’m pretty sure you’ll see it being downloaded from your server. -Dsonar.verbose=true