Error in SonarLint 8.1.0.65508 for IntelliJ

Environment:

  • Java: JetBrains s.r.o. 17.0.6
  • OS: Windows 10 amd64
  • IDE: IntelliJ IDEA 2023.1
  • SonarLint: 8.1.0.65508
java.lang.IllegalStateException: Unable to extract rules metadata
	at o.ss.sl.core.rule.extractor.RulesDefinitionExtractor.extractRules(RulesDefinitionExtractor.java:42)
	at o.ss.sl.core.AbstractSonarLintEngine.loadPluginMetadata(AbstractSonarLintEngine.java:77)
	at o.ss.sl.core.ConnectedSonarLintEngineImpl.loadAnalysisContext(ConnectedSonarLintEngineImpl.java:120)
	at o.ss.sl.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:112)
	at o.ss.sl.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:102)
	at o.sl.ij.core.SonarLintEngineFactory.createEngine(SonarLintEngineFactory.java:63)
	at o.sl.ij.core.DefaultEngineManager.createConnectedEngine(DefaultEngineManager.java:122)
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
	at o.sl.ij.core.DefaultEngineManager.getConnectedEngine(DefaultEngineManager.java:114)
	at o.sl.ij.core.DefaultEngineManager.getConnectedEngine(DefaultEngineManager.java:149)
	at o.sl.ij.core.ProjectBindingManager.getFacade(ProjectBindingManager.java:93)
	at o.sl.ij.core.ProjectBindingManager.getFacade(ProjectBindingManager.java:77)
	at o.sl.ij.analysis.LocalFileExclusions.filterWithServerExclusions(LocalFileExclusions.java:268)
	at o.sl.ij.analysis.LocalFileExclusions.retainNonExcludedFilesByModules(LocalFileExclusions.java:164)
	at o.sl.ij.ui.AutoTriggerStatusPanel.lambda$switchCards$2(AutoTriggerStatusPanel.java:86)
	at c.ij.oa.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:252)

Hello @hwadikar,

Would you still have the complete stack trace ? Could you also share with us the list of plugins that are installed on your SonarQube instance (you can check <your-instance>/api/plugins/installed)?

Hello,
I met this issue with the following environment:

  • Java: JetBrains s.r.o. 17.0.3
  • OS: Windows 10 amd64
  • IDE: IntelliJ IDEA 2022.2.1
  • SonarLint: 8.1.0.65508
    This issue appeared in the last week on Tuesday, May 2nd.

Hello @mvibert,

Thanks for the heads-up! Don’t hesitate to share more details as requested in my previous post

Hello Damien,

I don’t have the folder /api/plugins/installed on my device.
I have a folder plugins with 154 folders inside it.

Here is a complete stacktrace of the error displayed in IntelliJ :

java.lang.IllegalStateException: Unable to extract rules metadata
	at org.sonarsource.sonarlint.core.rule.extractor.RulesDefinitionExtractor.extractRules(RulesDefinitionExtractor.java:42)
	at org.sonarsource.sonarlint.core.AbstractSonarLintEngine.loadPluginMetadata(AbstractSonarLintEngine.java:77)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.loadAnalysisContext(ConnectedSonarLintEngineImpl.java:120)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.start(ConnectedSonarLintEngineImpl.java:112)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.<init>(ConnectedSonarLintEngineImpl.java:102)
	at org.sonarlint.intellij.core.SonarLintEngineFactory.createEngine(SonarLintEngineFactory.java:63)
	at org.sonarlint.intellij.core.DefaultEngineManager.createConnectedEngine(DefaultEngineManager.java:122)
	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
	at org.sonarlint.intellij.core.DefaultEngineManager.getConnectedEngine(DefaultEngineManager.java:114)
	at org.sonarlint.intellij.core.ProjectBindingManager.getConnectedEngineSkipChecks(ProjectBindingManager.java:102)
	at org.sonarlint.intellij.core.ProjectBindingManager.getValidConnectedEngine(ProjectBindingManager.java:135)
	at org.sonarlint.intellij.finding.issue.vulnerabilities.TaintVulnerabilitiesLoader.getTaintVulnerabilitiesByOpenedFiles(TaintVulnerabilitiesLoader.kt:42)
	at org.sonarlint.intellij.finding.issue.vulnerabilities.TaintVulnerabilitiesPresenter$presentTaintVulnerabilitiesForOpenFiles$1.run(TaintVulnerabilitiesPresenter.kt:105)
	at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:442)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:114)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$5(CoreProgressManager.java:493)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$3(ProgressRunner.java:252)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:188)
	at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
	at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
	at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
	at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
	at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
	at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:175)
	at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonarsource.sonarlint.core.rule.extractor.RuleDefinitionsLoader
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.getComponentByType(SpringComponentContainer.java:132)
	at org.sonarsource.sonarlint.core.rule.extractor.RulesDefinitionExtractorContainer.doAfterStart(RulesDefinitionExtractorContainer.java:79)
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.startComponents(SpringComponentContainer.java:182)
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.execute(SpringComponentContainer.java:161)
	at org.sonarsource.sonarlint.core.rule.extractor.RulesDefinitionExtractor.extractRules(RulesDefinitionExtractor.java:39)
	... 32 more
Caused by: org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PluginClassLoader(plugin=PluginDescriptor(name=SonarLint, id=org.sonarlint.idea, descriptorPath=plugin.xml, path=~\AppData\Roaming\JetBrains\IntelliJIdea2022.2\plugins\sonarlint-intellij, version=8.1.0.65508, package=null, isBundled=false), packagePrefix=null, instanceId=210, state=active)-org.sonarsource.sonarlint.core.rule.extractor.RuleDefinitionsLoader': Bean instantiation via constructor failed; nested exception is org.sonarsource.sonarlint.shaded.org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.sonarsource.sonarlint.core.rule.extractor.RuleDefinitionsLoader]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: 'void org.sonarsource.analyzer.commons.RuleMetadataLoader.<init>(java.lang.String, org.sonar.api.SonarRuntime)'
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:315)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:296)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1284)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1245)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:494)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:349)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:342)
	at org.sonarsource.sonarlint.shaded.org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1172)
	at org.sonarsource.sonarlint.core.plugin.commons.container.SpringComponentContainer.getComponentByType(SpringComponentContainer.java:130)
	... 36 more
Caused by: org.sonarsource.sonarlint.shaded.org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.sonarsource.sonarlint.core.rule.extractor.RuleDefinitionsLoader]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: 'void org.sonarsource.analyzer.commons.RuleMetadataLoader.<init>(java.lang.String, org.sonar.api.SonarRuntime)'
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:224)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:117)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:311)
	... 52 more
Caused by: java.lang.NoSuchMethodError: 'void org.sonarsource.analyzer.commons.RuleMetadataLoader.<init>(java.lang.String, org.sonar.api.SonarRuntime)'
	at fr.cnumr.python.CustomPythonRuleRepository.define(CustomPythonRuleRepository.java:57)
	at org.sonarsource.sonarlint.core.rule.extractor.RuleDefinitionsLoader.<init>(RuleDefinitionsLoader.java:35)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at org.sonarsource.sonarlint.shaded.org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:211)
	... 54 more

Have a nice evening

Thanks for the stacktrace, it’s helpful.

I can see that you have a third-party plugin installed on your SonarQube instance:

fr.cnumr.python.CustomPythonRuleRepository

Maybe the ecoCode plugin ? Are you using the latest version ? I can’t see this class in the latest version of this plugin.

Where is the plugins folder you mentioned located ? Could you give some examples of what you observe in this folder ?

Hello,

I finally uninstalled the plugin SonarLint and I don’t meet this error anymore.

If you’d like, I can provide you some samples of my “plugins” folder next week on my computer at work.

Have a nice day and week-end