Hi all,
here my "workaround" for this:
Because I know I will be using eventadmin (its listed in bootFeatures of my
dist as well), I make sure its started before features.core:

startup.properties
mvn\:org.apache.karaf.services/org.apache.karaf.services.eventadmin/4.0.0.M3
= 14
mvn\:org.apache.karaf.features/org.apache.karaf.features.core/4.0.0.M3 = 15

not ideal, but works.

Fabian

On Tue, Jun 9, 2015 at 11:22 AM, Guillaume Nodet <[email protected]> wrote:

> 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
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to