Error in SonarLint for PyCharm 2021.1.1

Environment:

  • Java version=11.0.10
  • Java vendor=JetBrains s.r.o.
  • OS name=Mac OS X
  • OS architecture=x86_64
  • IDE=PyCharm 2021.1.1
  • SonarLint version=4.15.0.30553
java.lang.NoClassDefFoundError: org/sonar/plugins/java/api/CheckRegistrar
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
	at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
	at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
	at org.sonar.classloader.ClassRealm.loadClassFromSelf(ClassRealm.java:125)
	at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:37)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
	at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
	at org.codehawk.plugin.java.MyJavaRulesPlugin.define(MyJavaRulesPlugin.java:17)
	at org.sonarsource.sonarlint.core.container.global.ExtensionInstaller.install(ExtensionInstaller.java:75)
	at org.sonarsource.sonarlint.core.container.global.ExtensionInstaller.install(ExtensionInstaller.java:65)
	at org.sonarsource.sonarlint.core.container.global.GlobalExtensionContainer.doBeforeStart(GlobalExtensionContainer.java:35)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:124)
	at org.sonarsource.sonarlint.core.container.storage.StorageContainer.doAfterStart(StorageContainer.java:139)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:126)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:119)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:78)
	at org.sonarlint.intellij.core.SonarLintEngineFactory.createEngine(SonarLintEngineFactory.java:88)
	at org.sonarlint.intellij.core.SonarLintEngineManager.getConnectedEngine(SonarLintEngineManager.java:126)
	at org.sonarlint.intellij.core.SonarLintEngineManager.getConnectedEngine(SonarLintEngineManager.java:151)
	at org.sonarlint.intellij.core.ProjectBindingManager.getFacade(ProjectBindingManager.java:79)
	at org.sonarlint.intellij.core.ProjectBindingManager.getFacade(ProjectBindingManager.java:64)
	at org.sonarlint.intellij.analysis.LocalFileExclusions.filterWithServerExclusions(LocalFileExclusions.java:249)
	at org.sonarlint.intellij.analysis.LocalFileExclusions.retainNonExcludedFilesByModules(LocalFileExclusions.java:157)
	at org.sonarlint.intellij.trigger.SonarLintSubmitter.filterAndGetByModule(SonarLintSubmitter.java:133)
	at org.sonarlint.intellij.trigger.SonarLintSubmitter.submitFiles(SonarLintSubmitter.java:112)
	at org.sonarlint.intellij.trigger.SonarLintSubmitter.submitFiles(SonarLintSubmitter.java:103)
	at org.sonarlint.intellij.trigger.EditorChangeTrigger$EventWatcher.triggerFiles(EditorChangeTrigger.java:144)
	at org.sonarlint.intellij.trigger.EditorChangeTrigger$EventWatcher.checkTimers(EditorChangeTrigger.java:167)
	at org.sonarlint.intellij.trigger.EditorChangeTrigger$EventWatcher.run(EditorChangeTrigger.java:125)
Caused by: java.lang.ClassNotFoundException: org.sonar.plugins.java.api.CheckRegistrar

Hi @Bad_Skyer

This issue is caused by a third party plugin that is installed in your SonarQube server: CodeHawk

SonarLint is no more loading our Java analyzer in PyCharm, since this will not do anything in the end. The problem is that CodeHawk doesn’t declare properly a dependency on our Java analyzer, and consequently fails to be loaded.

I have reported the issue on their project. Waiting for them to fix it, I can suggest the following workarounds:

  • remove this plugin from your SonarQube server (maybe you don’t really use it?) and trigger an update of the binding in PyCharm
  • unbind your project in PyCharm (but you will loose rule synchronization :frowning: )
1 Like

Issue solved, thank you @Julien_HENRY

1 Like

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