Sonar Lint - IBM IDz Integration

We are trying to integrate SonarLint with our IDz version 15.0.3. With the SonarLint version 6.2.0 (SonarLint for Eclipse 6.2.0.37299), the installation is successful. Connection to SonarQube server (version 8.9.6) and Binding to SonarQube project is also successful. However, we are facing the below error, when we try to analyze the Cobol modules.

Error during execution of SonarLint analysis
java.lang.IllegalStateException: Unable to load component class org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:60)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.getComponentByType(ComponentContainer.java:251)
	at org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:133)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:126)
	at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:111)
	at org.sonarsource.sonarlint.core.container.storage.StorageAnalyzer.analyze(StorageAnalyzer.java:77)
	at org.sonarsource.sonarlint.core.container.storage.StorageContainerHandler.analyze(StorageContainerHandler.java:80)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.lambda$analyze$0(ConnectedSonarLintEngineImpl.java:159)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl$$Lambda$952/0x00000000dded1ae0.apply(Unknown Source)
	at org.sonarsource.sonarlint.core.AbstractSonarLintEngine.withModule(AbstractSonarLintEngine.java:87)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.lambda$analyze$1(ConnectedSonarLintEngineImpl.java:157)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl$$Lambda$951/0x00000000d413efd0.get(Unknown Source)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:371)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:361)
	at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.analyze(ConnectedSonarLintEngineImpl.java:155)
	at org.sonarlint.eclipse.core.internal.engine.connected.ConnectedEngineFacade.lambda$15(ConnectedEngineFacade.java:392)
	at org.sonarlint.eclipse.core.internal.engine.connected.ConnectedEngineFacade$$Lambda$950/0x00000000dfa64f80.apply(Unknown Source)
	at org.sonarlint.eclipse.core.internal.engine.connected.ConnectedEngineFacade.withEngine(ConnectedEngineFacade.java:185)
	at org.sonarlint.eclipse.core.internal.engine.connected.ConnectedEngineFacade.runAnalysis(ConnectedEngineFacade.java:391)
	at org.sonarlint.eclipse.core.internal.jobs.AnalyzeConnectedProjectJob.runAnalysis(AnalyzeConnectedProjectJob.java:70)
	at org.sonarlint.eclipse.core.internal.jobs.AnalyzeConnectedProjectJob.runAnalysis(AnalyzeConnectedProjectJob.java:1)
	at org.sonarlint.eclipse.core.internal.jobs.AbstractAnalyzeProjectJob.run(AbstractAnalyzeProjectJob.java:400)
	at org.sonarlint.eclipse.core.internal.jobs.AbstractAnalyzeProjectJob.runAnalysisAndUpdateMarkers(AbstractAnalyzeProjectJob.java:208)
	at org.sonarlint.eclipse.core.internal.jobs.AbstractAnalyzeProjectJob.doRun(AbstractAnalyzeProjectJob.java:162)
	at org.sonarlint.eclipse.core.internal.jobs.AbstractSonarProjectJob.run(AbstractSonarProjectJob.java:45)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.plugins.java.JavaSquidSensor
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:60)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:621)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.CollectionComponentParameter.getArrayInstance(CollectionComponentParameter.java:334)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.CollectionComponentParameter.access$100(CollectionComponentParameter.java:49)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.CollectionComponentParameter$1.resolveInstance(CollectionComponentParameter.java:139)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:141)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:58)
	... 26 more
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonar.java.SonarComponents
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:60)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:58)
	... 42 more
Caused by: org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: org.sonar.java.SonarComponents has unsatisfied dependency 'class org.sonar.java.JavaTestClasspath' for constructor 'public org.sonar.java.SonarComponents(org.sonar.api.measures.FileLinesContextFactory,org.sonar.api.batch.fs.FileSystem,org.sonar.java.JavaClasspath,org.sonar.java.JavaTestClasspath,org.sonar.api.batch.rule.CheckFactory)' from org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer@2ca6afac:180<[Immutable]:org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer@64cd88de:7<[Immutable]:org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer@d6360b9a:4<[Immutable]:org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer@10413780:66<|
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:191)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:331)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
	at org.sonarsource.sonarlint.shaded.org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
	at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:58)
	... 56 more

Hi @Ramapriya

The error look strange to me. This is like SonarLint is trying to load an old version of an analyzer. This should not be the case if you are trying to bind with a SonarQube 8.6.

May I ask you to:

  • enable verbose output in the SonarLint console
  • trigger an update of all project bindings in the SonarLint Bindings view
  • share the produced logs with me

Thanks

Hi Julien,

I did “Update All Project Bindings” and tried again. Still facing the same issue. Turned on Verbose and captured the logs.
Sonar6.2.0log.txt (26.4 KB)

Thanks,
Ramapriya

So the logs say:

  • Java Code Quality and Security 6.15.1.26025 (java)

and the stacktrace:

org.sonar.java.SonarComponents has unsatisfied dependency ‘class org.sonar.java.JavaTestClasspath’ for constructor 'public org.sonar.java.SonarComponents(org.sonar.api.measures.FileLinesContextFactory,org.sonar.api.batch.fs.FileSystem,org.sonar.java.JavaClasspath,org.sonar.java.JavaTestClasspath,org.sonar.api.batch.rule.CheckFactory)

but if I look at the source code of SonarJava, I can’t find the same method signature:

(note the difference between types: org.sonar.java.classpath.ClasspathForTest vs org.sonar.java.JavaTestClasspath)

So my guess would be that one of the plugins that is not an official SonarSource analyzer has been (partially) forked from an old version of SonarJava (<6.11), and is now incompatible. Should be one of:

  • sdlc sonar extension 1.6 (sdlcsonarextension)
  • AGF3 Custom Rules for Java 1.18 (agf3javarules)
  • LAA Java NC Plugin 2.0.1 (LAAjavaplugin)

Since I don’t have access to those plugins, it is hard for me to help you further. You may want to try to temporarily remove those plugins from SonarQube, then update the SonarLint bindings again and see if the situation is better. You can then add them one by one until you find the guilty one.

Thanks a lot Julien. Will check on the Plugins.

Hello @Ramapriya,

Have you been able to find which plugin is causing the problem ?

Hi @Damien_Urruty , The plugins are maintained by another team. We have booked an appointment next week to check on the same. Will keep you posted about the progress. Thanks a lot for following up.

@Julien_HENRY @Damien_Urruty
We identified the plugin causing the issue. Thanks a lot for the support.

2 Likes

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