1

After installing the sonarLint plugin in offline mode on eclipse, and after restarting eclipse, this error was displayed :

Unable to start standalone SonarLint engine
java.lang.IllegalStateException: Unable to load component interface org.sonar.api.batch.rule.Rules

The full log is :

Unable to start standalone SonarLint engine
java.lang.IllegalStateException: Unable to load component interface org.sonar.api.batch.rule.Rules
    at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:59)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:678)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.getComponentByType(ComponentContainer.java:258)
    at org.sonarsource.sonarlint.core.container.standalone.rule.StandaloneRuleRepositoryContainer.doAfterStart(StandaloneRuleRepositoryContainer.java:64)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:110)
    at org.sonarsource.sonarlint.core.container.standalone.StandaloneGlobalContainer.loadRulesAndActiveRulesFromPlugins(StandaloneGlobalContainer.java:126)
    at org.sonarsource.sonarlint.core.container.standalone.StandaloneGlobalContainer.doAfterStart(StandaloneGlobalContainer.java:99)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
    at org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.start(StandaloneSonarLintEngineImpl.java:64)
    at org.sonarsource.sonarlint.core.StandaloneSonarLintEngineImpl.<init>(StandaloneSonarLintEngineImpl.java:52)
    at org.sonarlint.eclipse.core.internal.jobs.StandaloneSonarLintClientFacade.getClient(StandaloneSonarLintClientFacade.java:60)
    at org.sonarlint.eclipse.core.internal.jobs.StandaloneSonarLintClientFacade.runAnalysis(StandaloneSonarLintClientFacade.java:74)
    at org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob.run(AnalyzeProjectJob.java:456)
    at org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob.runAnalysisAndUpdateMarkers(AnalyzeProjectJob.java:204)
    at org.sonarlint.eclipse.core.internal.jobs.AnalyzeProjectJob.doRun(AnalyzeProjectJob.java:160)
    at org.sonarlint.eclipse.core.internal.jobs.AbstractSonarProjectJob.runInWorkspace(AbstractSonarProjectJob.java:43)
    at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:42)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.IllegalStateException: Unable to load component class org.sonarsource.sonarlint.core.container.standalone.rule.StandaloneRuleDefinitionsLoader
    at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:59)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:632)
    at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
    at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
    at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
    at org.picocontainer.injectors.SingleMemberInjector.getMemberArguments(SingleMemberInjector.java:61)
    at org.picocontainer.injectors.MethodInjector.getMemberArguments(MethodInjector.java:100)
    at org.picocontainer.injectors.MethodInjector$2.run(MethodInjector.java:112)
    at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
    at org.picocontainer.injectors.MethodInjector.decorateComponentInstance(MethodInjector.java:120)
    at org.picocontainer.injectors.CompositeInjector.decorateComponentInstance(CompositeInjector.java:58)
    at org.picocontainer.injectors.Reinjector.reinject(Reinjector.java:142)
    at org.picocontainer.injectors.ProviderAdapter.getComponentInstance(ProviderAdapter.java:96)
    at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
    at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:57)
    ... 18 more
Caused by: java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.eval(String)" because the return value of "javax.script.ScriptEngineManager.getEngineByName(String)" is null
    at org.sonarsource.analyzer.commons.JsonParser.<init>(JsonParser.java:36)
    at org.sonarsource.analyzer.commons.ProfileDefinitionReader.loadActiveKeysFromJsonProfile(ProfileDefinitionReader.java:59)
    at org.sonarsource.analyzer.commons.RuleMetadataLoader.<init>(RuleMetadataLoader.java:60)
    at org.sonar.plugins.php.PHPRulesDefinition.define(PHPRulesDefinition.java:37)
    at org.sonarsource.sonarlint.core.container.standalone.rule.StandaloneRuleDefinitionsLoader.<init>(StandaloneRuleDefinitionsLoader.java:39)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.picocontainer.injectors.AbstractInjector.newInstance(AbstractInjector.java:145)
    at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:342)
    at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
    at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
    at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
    at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
    at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
    at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:699)
    at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:647)
    at org.sonarsource.sonarlint.core.container.ComponentContainer$ExtendedDefaultPicoContainer.getComponent(ComponentContainer.java:57)
    ... 33 more

Found 0 issue(s)
Amine ABBAOUI
  • 175
  • 1
  • 12
  • 1
    That's not the full log. The full log starts with `!SESSION` and is stored in the workspace in `.metadata/.log`. – howlger May 10 '21 at 11:10
  • thank you for your comment but I'm talking about the console log. for the eclipse log there is no information related to sonarLint – Amine ABBAOUI May 10 '21 at 11:22
  • 1
    I see. The root problem seems to be that the JavaScript engine is required, which was included in older versions of Java, but is no longer included in more recent versions. Is your SonarLint up to date? – howlger May 10 '21 at 11:54
  • Sincerely I don't have a big idea, I used the answer given in this [link](https://stackoverflow.com/questions/51494982/install-sonarlint-plugin-in-eclipse-offline) – Amine ABBAOUI May 10 '21 at 12:03
  • 1
    That seems to be outdated. Grab https://binaries.sonarsource.com/SonarLint-for-Eclipse/releases/5.9.0.31414/ with the subfolders `features` and `plugins` instead. – howlger May 10 '21 at 12:37
  • I tried with the latest version and it worked fine, thanks a lot for your help, you can add it as an answer if you want – Amine ABBAOUI May 10 '21 at 13:06

1 Answers1

2

According to the log, the JavaScript engine is missing, which was included in older Java versions, but has been removed in Java 15.

Make sure, your SonarLint is up to date. For offline installation you can grab the latest release from https://binaries.sonarsource.com/SonarLint-for-Eclipse/releases, which is currently, 5.9.0.31414.

howlger
  • 31,050
  • 11
  • 59
  • 99