Hi,

Am Montag, den 23.05.2011, 14:59 +0100 schrieb Richard S. Hall: 
> If I recall, I don't think that should be null.

That would be my interpretation, too. But unfortunately it can happen.

> It would be awesome if 
> there was some way to reproduce it.

I try to get hold to a system which exhibits this problem and try to
find out how to reproduce ...

At the moment it looks like this:

  * start framework
  * after startup install and start a bunch of bundles
  * use the system
    --> NPE occurs
  * stop framework
  * start the framework again
    --> all bundles already installed and starting properly
  * use the system
    --> works flawlessly without NPE

So it sounds like an issue related to resolution bundles installed after
startup.

Regards
Felix


> 
> -> richard
> 
> On 5/23/11 6:05, Felix Meschberger wrote:
> > Hi,
> >
> > A user of ours just reported this stack trace with 3.0.7:
> >
> >> org.apache.felix.framework.resolver.ResolverImpl.permutateIfNeeded(ResolverImpl.java:1140)
> >>  
> >> org.apache.felix.framework.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1066)
> >>  
> >> org.apache.felix.framework.resolver.ResolverImpl.resolve(ResolverImpl.java:176)
> >> org.apache.felix.framework.FelixFelixResolver.resolve(Felix.java:4066)
> >> org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1412)
> >> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:734)
> > Looking at the code in question:
> >
> >
> >> SortedSet<Capability>  candidates = allCandidates.getCandidates(req);
> >>          if (candidates.size()>  1)
> >>          {
> > it seems like there is no candidates set for the requirement which
> > causes the candidates.size() method to throw .. This is still the same
> > code in 3.2.2.
> >
> > The user in fact reports that after a restart everything works fine.
> >
> > Regards
> > Felix
> >
> > Am Mittwoch, den 02.02.2011, 22:37 +0000 schrieb Richard S. Hall:
> >> I don't think anything changed in that area for 3.0.8, but you could try
> >> it on 3.0.7 to see.
> >>
> >> If it is reproducible, then open a bug and tell me how and I'll look
> >> into it.
> >>
> >> ->  richard
> >>
> >> On 2/2/11 16:30, Guillaume Nodet wrote:
> >>> I just had this exception while testing with the latest 3.0.8
> >>>
> >>> java.lang.NullPointerException
> >>>   at 
> >>> org.apache.felix.framework.resolver.ResolverImpl.permutateIfNeeded(ResolverImpl.java:1140)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.resolver.ResolverImpl.checkPackageSpaceConsistency(ResolverImpl.java:1066)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.resolver.ResolverImpl.resolve(ResolverImpl.java:176)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:4100)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1412)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:734)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.ModuleImpl.access$400(ModuleImpl.java:71)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1768)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at java.lang.ClassLoader.loadClass(ClassLoader.java:248)[:1.6.0_22]
> >>>   at 
> >>> org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:645)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1612)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:904)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.findCompatibleNamespaceHandler(NamespaceHandlerRegistryImpl.java:369)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl$NamespaceHandlerSetImpl.registerHandler(NamespaceHandlerRegistryImpl.java:325)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl.registerHandler(NamespaceHandlerRegistryImpl.java:135)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl.addingService(NamespaceHandlerRegistryImpl.java:97)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:896)[karaf.jar:]
> >>>   at 
> >>> org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:261)[karaf.jar:]
> >>>   at 
> >>> org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:233)[karaf.jar:]
> >>>   at 
> >>> org.osgi.util.tracker.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:840)[karaf.jar:]
> >>>   at 
> >>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix.access$000(Felix.java:80)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.Felix.registerService(Felix.java:2854)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)[org.apache.felix.framework-3.0.8.jar:]
> >>>   at 
> >>> org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:404)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.container.ServiceRecipe.register(ServiceRecipe.java:184)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.container.BlueprintContainerImpl.registerServices(BlueprintContainerImpl.java:662)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:330)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[10:org.apache.aries.blueprint:0.3.0]
> >>>   at 
> >>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_22]
> >>>   at 
> >>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_22]
> >>>   at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_22]
> >>>   at 
> >>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_22]
> >>>   at 
> >>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_22]
> >>>   at 
> >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_22]
> >>>   at 
> >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_22]
> >>>   at java.lang.Thread.run(Thread.java:680)[:1.6.0_22]
> >>>
> >>>
> >


Reply via email to