Yes, this is a tricky use case as the features service needs to update itself. However, the code is supposed to support this use case. The fix should be easy, it's just a matter of forcing the load of all classes before updating the features-core bundle.
2015-06-09 11:14 GMT+02:00 Fabian Lange <[email protected]>: > Hi Guillaume, > ok, then this seems to be the reason: > > 2015-06-09 11:10:31,039 | INFO | pool-16-thread-1 | FeaturesServiceImpl > | 6 - org.apache.karaf.features.core - 4.0.0.M3 | > org.apache.karaf.features.command / 4.0.0.M3 (Wired to > org.apache.karaf.features.core/4.0.0.M3 which is being refreshed) > 2015-06-09 11:10:31,039 | INFO | pool-16-thread-1 | FeaturesServiceImpl > | 6 - org.apache.karaf.features.core - 4.0.0.M3 | > org.apache.karaf.features.core / 4.0.0.M3 (Should be wired to: > org.apache.karaf.services.eventadmin/4.0.0.M3 (through > [org.apache.karaf.features.core/4.0.0.M3] osgi.wiring.package; > > filter:="(&(osgi.wiring.package=org.osgi.service.event)(version>=1.3.0)(!(version>=2.0.0)))"; > resolution:=optional)) > 2015 > > Will report this in an issue. > Fabian > > On Tue, Jun 9, 2015 at 11:06 AM, Guillaume Nodet <[email protected]> > wrote: > > > Yes, I saw the stack trace and it says, "because the bundle wiring for > > org.apache.karaf.features.core > > is no longer valid", which means that the bundle (features-core in this > > case) has been refreshed in the mean time. Please raise a JIRA issue > with > > the needed steps to reproduce the problem. > > > > 2015-06-09 11:01 GMT+02:00 Fabian Lange <[email protected]>: > > > > > Hi Guillaume, > > > have you checked the stack trace at the end? > > > > > > 2015-06-09 09:00:47,893 | ERROR | pool-2-thread-1 | my-bundle > > > | 7 - my-bundle - 1.0.0.SNAPSHOT | [my-bundle(0)] The activate > method > > > has thrown an exception > > > java.lang.NoClassDefFoundError: org/apache/karaf/features/FeatureEvent > > > at > > > > > > > > > org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:851)[6:org.apache.karaf.features.core:4.0.0.M3] > > > at > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1061)[6:org.apache.karaf.features.core:4.0.0.M3] > > > at > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:960)[6:org.apache.karaf.features.core:4.0.0.M3] > > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40] > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_40] > > > at > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_40] > > > at java.lang.Thread.run(Thread.java:745)[:1.8.0_40] > > > Caused by: java.lang.ClassNotFoundException: Unable to load class > > > 'org.apache.karaf.features.FeatureEvent' because the bundle wiring for > > > org.apache.karaf.features.core is no longer valid. > > > at > > > > > > > > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1523)[org.apache.felix.framework-5.0.0.jar:] > > > at > > > > > > > > > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.0.0.jar:] > > > at > > > > > > > > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998)[org.apache.felix.framework-5.0.0.jar:] > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_40] > > > ... 7 more > > > > > > this seems to interrupt the lifecycle of my activation. > > > downgraded to m2 -> works. Back to m3 -> broken again > > > Fabian > > > > > > > > > On Tue, Jun 9, 2015 at 10:07 AM, Guillaume Nodet <[email protected]> > > > wrote: > > > > > > > It's not a dependency issue, its a problem with a bundle being > stopped > > > > while still doing some work. > > > > Can this be replicated ? > > > > > > > > > > > > 2015-06-09 9:06 GMT+02:00 Fabian Lange <[email protected] > >: > > > > > > > > > Hi all, > > > > > before raising an issue, am I missing a new dependency here? > > > > > My config worked on M2, now I get the following on startup. > > > > > > > > > > Fabian > > > > > > > > > > > > > > > java.lang.IllegalStateException: Invalid BundleContext. > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:511)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleContextImpl.getBundle(BundleContextImpl.java:114)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.ComponentRegistry.checkComponentName(ComponentRegistry.java:357)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.BundleComponentActivator.loadDescriptor(BundleComponentActivator.java:258)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.BundleComponentActivator.initialize(BundleComponentActivator.java:158)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.BundleComponentActivator.<init>(BundleComponentActivator.java:120)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:258)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.Activator.access$000(Activator.java:45)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:185)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:259)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:232)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:479)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:414)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:443)[14:org.apache.felix.scr:1.8.2] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:913)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4520)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.Felix.startBundle(Felix.java:2166)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:1171)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:826)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1061)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:960)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40] > > > > > at > > > > > > > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_40] > > > > > at > > > > > > > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_40] > > > > > at java.lang.Thread.run(Thread.java:745)[:1.8.0_40] > > > > > > > > > > > > > > > java.lang.NoClassDefFoundError: > > org/apache/karaf/features/FeatureEvent > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:851)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1061)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.karaf.features.internal.service.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:960)[6:org.apache.karaf.features.core:4.0.0.M3] > > > > > at > > java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_40] > > > > > at > > > > > > > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_40] > > > > > at > > > > > > > > > > > > > > > > > > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_40] > > > > > at java.lang.Thread.run(Thread.java:745)[:1.8.0_40] > > > > > Caused by: java.lang.ClassNotFoundException: Unable to load class > > > > > 'org.apache.karaf.features.FeatureEvent' because the bundle wiring > > for > > > > > org.apache.karaf.features.core is no longer valid. > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1523)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.0.0.jar:] > > > > > at > > > > > > > > > > > > > > > > > > > > org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1998)[org.apache.felix.framework-5.0.0.jar:] > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_40] > > > > > ... 7 more > > > > > > > > > > > > > > >
