Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
blueprint-core-1.1.0
-
None
-
None
-
linux, karaf
Description
There is a weird NPE happening under the following conditions:
1) The bundle wires Apache Camel using blueprint.xml. If I remove camel from blueprint.xml, the issue doesn't occur
2) The bundle starts fine for the first time
3) The bundle restarts successfully by hand if it's not being redeployed
4) The bundle fails to restart during hot deployment in Karaf following with NPE (specifically "install mvn:..." and "dev:watch *" features used for hot deployment, other methods not tested)
The workaround is to uninstall the old bundle and install new bundle (PID changes)
Hope this is good enough to isolate the issue.
Full stack trace:
2014-01-21 11:25:17,424 | ERROR | Thread-72 | BlueprintContainerImpl | container.BlueprintContainerImpl 393 | 7 - org.apache.aries.blueprint.core - 1.1.0 | Unable to start blueprint container for bundle blah-blah-blah org.osgi.service.blueprint.container.ComponentDefinitionException: java.lang.NullPointerException at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:115)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[7:org.apache.aries.blueprint.core:1.1.0] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_21] at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_21] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:933)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[7:org.apache.aries.blueprint.core:1.1.0] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)[:1.7.0_21] at java.util.concurrent.FutureTask.run(FutureTask.java:166)[:1.7.0_21] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:230)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:155)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:514)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:353)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:261)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:259)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:222)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)[11:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)[11:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)[11:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)[11:org.apache.aries.util:1.1.0] at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)[11:org.apache.aries.util:1.1.0] at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4244)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.Felix.startBundle(Felix.java:1923)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.Felix.updateBundle(Felix.java:2235)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:962)[org.apache.felix.framework-4.0.3.jar:] at org.apache.karaf.shell.dev.watch.BundleWatcher.run(BundleWatcher.java:112)[29:org.apache.karaf.shell.dev:2.3.3] at java.lang.Thread.run(Thread.java:722)[:1.7.0_21] Caused by: java.lang.NullPointerException at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)[org.apache.felix.framework-4.0.3.jar:] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) at java.lang.ClassLoader.loadClass(ClassLoader.java:410)[:1.7.0_21] at java.lang.ClassLoader.loadClass(ClassLoader.java:356)[:1.7.0_21] at java.lang.Class.forName0(Native Method)[:1.7.0_21] at java.lang.Class.forName(Class.java:266)[:1.7.0_21] at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.isInvalid(ProxyClassLoader.java:109)[10:org.apache.aries.proxy.impl:1.0.1] at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:84)[10:org.apache.aries.proxy.impl:1.0.1] at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:72)[10:org.apache.aries.proxy.impl:1.0.1] at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75)[10:org.apache.aries.proxy.impl:1.0.1] at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:40)[10:org.apache.aries.proxy.impl:1.0.1] at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:306)[7:org.apache.aries.blueprint.core:1.1.0] at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:99)[7:org.apache.aries.blueprint.core:1.1.0] ... 35 more