Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList caused by sonar scanner 2.6.1

2,414 views
Skip to first unread message

ezr...@gmail.com

unread,
Aug 25, 2016, 3:45:09 AM8/25/16
to SonarQube
Hi,
I recently upgraded my Jaba plugin to 4.1 ans since this my sonar-scanner is failing with NoClassDefFoundError exception regrading Google Gueva:

NFO: Scanner configuration file: /nfs/iil/disks/iec_sws2/tools/sonar-scanner-2.6.1/conf/sonar-scanner.properties
INFO: Project root configuration file: /tmp/jenkins/workspace/start-web/startweb/sonar-project.properties
INFO: SonarQube Scanner 2.6.1
INFO: Java 1.8.0_92 Oracle Corporation (64-bit)
INFO: Linux 3.0.101-0.7.29.1.9310.1.PTF-default amd64
INFO: User cache: /tmp/.sonar/cache
INFO: Load global repositories
INFO: Load global repositories (done) | time=257ms
INFO: User cache: /tmp/.sonar/cache
INFO: Load plugins index
INFO: Load plugins index (done) | time=8ms
INFO: SonarQube server 5.6
INFO: Default locale: "en_US", source code encoding: "UTF-8"
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList
        at org.sonar.plugins.java.JavaPlugin.define(JavaPlugin.java:44)
        at org.sonar.batch.bootstrap.ExtensionInstaller.install(ExtensionInstaller.java:55)
        at org.sonar.batch.task.TaskContainer.addTaskExtensions(TaskContainer.java:62)
        at org.sonar.batch.task.TaskContainer.doBeforeStart(TaskContainer.java:49)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:140)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:240)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:72)
        at org.sonarsource.scanner.cli.Main.main(Main.java:60)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableList
        at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
        ... 20 more

ezr...@gmail.com

unread,
Aug 25, 2016, 10:10:20 AM8/25/16
to SonarQube, ezr...@gmail.com
after cleaning the local sonar cache the problem was resolved

mohankris...@gmail.com

unread,
Feb 15, 2017, 8:34:41 AM2/15/17
to SonarQube, ezr...@gmail.com
Hi All,

Please help out to resolve the issue.
I am facing the same issue, as above said cleared the cache but no use.

I am using SQ version : 6.2

I am really appreciate for quick help.

Thanks in advance. 

Error Details :

INFO: 1 source files to be analyzed
WARN: Metric 'lines' is an internal metric computed by SonarQube. Provided value is ignored.
Exception in thread "main" java.lang.NoClassDefFoundError: org/sonar/api/internal/google/common/collect/ImmutableList
        at org.sonar.template.java.checks.AvoidContextGetBeanCheck.nodesToVisit(AvoidContextGetBeanCheck.java:25)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:69)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:64)
        at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:121)
        at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84)
        at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67)
        at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:114)
        at org.sonar.java.JavaSquid.scan(JavaSquid.java:108)
        at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:87)
        at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
        at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
        at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
        at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:247)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:242)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:240)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:232)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
        at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:86)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:115)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:74)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.ClassNotFoundException: org.sonar.api.internal.google.common.collect.ImmutableList
        at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
        ... 40 more

mohankris...@gmail.com

unread,
Feb 15, 2017, 8:36:21 AM2/15/17
to SonarQube, ezr...@gmail.com, mohankris...@gmail.com
Hi All,

Using Sonar Scanner version : 2.8

Thanks,
Mohan

muril...@gmail.com

unread,
Mar 29, 2017, 11:06:38 AM3/29/17
to SonarQube, ezr...@gmail.com, mohankris...@gmail.com
Hi, did you resove the problem? I got same problem...

Tibor Blenessy

unread,
Apr 12, 2017, 5:20:55 AM4/12/17
to mohankris...@gmail.com, SonarQube
Hello,

from the stacktrace it seems that source of the problem is in this class
org.sonar.template.java.checks.AvoidContextGetBeanCheck 

This class is most likely part of some custom plugin you have installed on your SonarQube instance. It is using internal shaded version of Google's Guava library. If you have access to the source code of the plugin, remove import of 

org.sonar.api.internal.google.common.collect.ImmutableList 

and replace it with 

com.google.common.collect.ImmutableList;

If you can't modify this plugin, the only way would be to remove it from your SonarQube server.

Hope that helps,


--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarqube/3b91f18f-974f-43fb-8fc3-9efbbcf000c0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Tibor BLENESSY | SonarSource
SonarJava Developer
Reply all
Reply to author
Forward
0 new messages