Execution fails with java.lang.IllegalStateException: Fail to load plugin TIBCO BusinessWorks 6 [tibcobw6]

Could anyone let me know why this error happens. Sonar failed to start after upgrading from 6.7.6 to 7.7


2019.04.08 13:17:04 INFO web[o.s.s.p.ServerPluginRepository] Deploy plugin TIBCO BusinessWorks 6 / 1.0.1 / 0
2019.04.08 13:17:09 WARN web[o.s.c.p.PluginLoader] API compatibility mode is no longer supported. In case of error, plugin TIBCO BusinessWorks 6 [tibcobw6] should package its dependencies.
2019.04.08 13:17:11 INFO web[o.s.s.p.w.MasterServletFilter] Initializing servlet filter org.sonar.server.ws.WebServiceFilter@52a4ef80 [pattern=UrlPattern{inclusions=[/api/system/migrate_db., …], exclusions=[/api/properties, …]}]
2019.04.08 13:17:12 INFO web[o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9000
2019.04.08 13:17:18 ERROR web[o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
java.lang.IllegalStateException: Fail to load plugin TIBCO BusinessWorks 6 [tibcobw6]
at org.sonar.server.plugins.ServerExtensionInstaller.installExtensions(ServerExtensionInstaller.java:82)
at org.sonar.server.platform.platformlevel.PlatformLevel4.start(PlatformLevel4.java:571)
at org.sonar.server.platform.Platform.start(Platform.java:211)
at org.sonar.server.platform.Platform.startLevel34Containers(Platform.java:185)
at org.sonar.server.platform.Platform.access$500(Platform.java:46)
at org.sonar.server.platform.Platform$1.lambda$doRun$0(Platform.java:119)
at org.sonar.server.platform.Platform$AutoStarterRunnable.runIfNotAborted(Platform.java:371)
at org.sonar.server.platform.Platform$1.doRun(Platform.java:119)
at org.sonar.server.platform.Platform$AutoStarterRunnable.run(Platform.java:355)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableList
at com.tibco.businessworks6.sonar.plugin.BusinessWorksPlugin.getExtensions(BusinessWorksPlugin.java:19)
at org.sonar.api.SonarPlugin.define(SonarPlugin.java:51)
at org.sonar.server.plugins.ServerExtensionInstaller.installExtensions(ServerExtensionInstaller.java:72)
… 9 common frames omitted
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)
… 12 common frames omitted
2019.04.08 13:17:18 INFO web[o.s.p.StopWatcher] Stopping process

Hi,

Your Tibco plugin is probably outdated. Prior SonarQube 5.2, some third party dependencies (like Guava) were directly usable by plugins (provided at runtime in their classloader). Starting from 5.2 it was deprecated, but still working thanks to a mode called “API compatibility”. You should have missed the warning at server startup.

Now we removed this mode, that’s why your plugin is failing, and you see the message:

API compatibility mode is no longer supported. In case of error, plugin TIBCO BusinessWorks 6 [tibcobw6] should package its dependencies.

So you’ll have to rebuild you plugin after updating the dependency on sonar-plugin-api to 6.7+, including Guava as dependency.

1 Like