Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 369390

Summary: Missing import in LogBack SLF4J Impl bundle
Product: [Tools] Orbit Reporter: Gunnar Wagenknecht <gunnar>
Component: bundlesAssignee: Gunnar Wagenknecht <gunnar>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: P3 CC: david_williams
Version: unspecified   
Target Milestone: Juno M5   
Hardware: All   
OS: All   
Whiteboard:

Description Gunnar Wagenknecht CLA 2012-01-23 09:45:16 EST
Bundle ch.qos.logback.slf4j has a missing import which basically makes the SLF4J implementation useless. Discovered using Equinox 3.8.
Comment 1 Gunnar Wagenknecht CLA 2012-01-23 09:53:51 EST
Not sure how that one slipped through. Fix committed. Waiting for new build to verify.
Comment 2 Gunnar Wagenknecht CLA 2012-01-23 11:22:46 EST
Note, the missing import only affects version 1.0.0 of the bundles. This will result into a ClassNotFoundException when calling LoggerFactory.getLogger(...).

Thus, as shown in the stacktrace below any class with a static logger constant won't load.

The 1.0.0 version was introduced in S20120120232307. S20120120232307 still contains version 0.9.27 which is not affected by this issue.

Root exception:
java.lang.NoClassDefFoundError: ch/qos/logback/classic/selector/ContextSelector
 at org.slf4j.impl.StaticLoggerBinder.getLoggerFactory(StaticLoggerBinder.java:107)
 at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:273)
 at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
 at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
 at org.eclipse.gyrex.common.runtime.BaseBundleActivator.<clinit>(BaseBundleActivator.java:56)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
 at java.lang.Class.newInstance0(Class.java:372)
 at java.lang.Class.newInstance(Class.java:325)
 at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:167)
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
 at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
 at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
 at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1177)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
 at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
 at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
 at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.classic.selector.ContextSelector
 at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
 at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
 at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
 ... 24 more
Comment 3 David Williams CLA 2012-01-24 09:03:31 EST
Due to reports on mailing list, we'll consider this a "blocker" (sounds like there is, technically, ways to work around it, but might be difficult for many projects to work around it, if many projects use it, or open ended-constraints) ... and thus promote a "new" S build for M5.