Another issue I've run into after updating to Karaf 2.3.x is that I can no longer update certain bundles because I get the error below. Nothing in our code has changed, and updating most bundles still works just fine. I have to restart the server then it comes back up just fine.
I think I've tracked it down to an issue where all the bundles having problems all depend on the same OSGI service. One of our other bundles exports an instance of org.apache.shiro.mgt.SecurityManager which all the bundles having problems import. If I remove that service lookup from the bundles everything works fine but if it's there the error below comes up. This used to work just find in Karaf 2.2.x so it's something new in 2.3.x. Is there anything I can do to fix this? 10:56:24,168 | ERROR | Thread-43 | BlueprintContainerImpl | 7 - org.apache.aries.blueprint.core - 1.4.0 | Unable to start blueprint container for bundle mobile-sync.mobile-adapter org.osgi.service.blueprint.container.ComponentDefinitionException: java.lang.NullPointerException at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:122) at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_51] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) at org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:933) at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:907) at org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:888) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:820) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:787) at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_51] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245) at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:230) at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:155) at org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:527) at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:361) at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269) at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276) at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:245) at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:235) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463) at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422) at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103) at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695) at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483) at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4244) at org.apache.felix.framework.Felix.startBundle(Felix.java:1923) at org.apache.felix.framework.Felix.updateBundle(Felix.java:2235) at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:962) at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:949) at org.apache.karaf.shell.osgi.UpdateBundle.doExecute(UpdateBundle.java:37) at org.apache.karaf.shell.osgi.BundleCommand.doExecute(BundleCommand.java:41) at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:474)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:400)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[14:org.apache.karaf.shell.console:2.3.4] at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) at org.apache.karaf.shell.console.jline.Console.run(Console.java:183) at java.lang.Thread.run(Thread.java:744)[:1.7.0_51] at org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4.doRun(ShellFactoryImpl.java:144)[44:org.apache.karaf.shell.ssh:2.3.4] at org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4$1.run(ShellFactoryImpl.java:135) at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_51] at javax.security.auth.Subject.doAs(Subject.java:356)[:1.7.0_51] at org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$4.run(ShellFactoryImpl.java:133)[44:org.apache.karaf.shell.ssh:2.3.4] Caused by: java.lang.NullPointerException at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) at java.lang.ClassLoader.loadClass(ClassLoader.java:412)[:1.7.0_51] at java.lang.ClassLoader.loadClass(ClassLoader.java:358)[:1.7.0_51] at java.lang.Class.forName0(Native Method)[:1.7.0_51] at java.lang.Class.forName(Class.java:270)[:1.7.0_51] at org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.isInvalid(ProxyClassLoader.java:109) at org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:84) at org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:72) at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:75) at org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:40) at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:338) at org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:106) ... 51 more Chris
