You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by Felix Meschberger <fm...@adobe.com> on 2011/05/23 12:05:19 UTC

Re: NPE with felix framework 3.0.8

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



Re: NPE with felix framework 3.0.8

Posted by Felix Meschberger <fm...@adobe.com>.
Hi,

Sure.

Regards
Felix

Am Dienstag, den 24.05.2011, 15:28 +0100 schrieb Richard S. Hall: 
> Keep me posted...thanks.
> 
> -> richard
> 
> On 5/24/11 3:28, Felix Meschberger wrote:
> > 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]
> >>>>>
> >>>>>
> >



Re: NPE with felix framework 3.0.8

Posted by "Richard S. Hall" <he...@ungoverned.org>.
Keep me posted...thanks.

-> richard

On 5/24/11 3:28, Felix Meschberger wrote:
> 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]
>>>>>
>>>>>
>

Re: NPE with felix framework 3.0.8

Posted by Felix Meschberger <fm...@adobe.com>.
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]
> >>>
> >>>
> >



Re: NPE with felix framework 3.0.8

Posted by "Richard S. Hall" <he...@ungoverned.org>.
If I recall, I don't think that should be null. It would be awesome if 
there was some way to reproduce it.

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