[ 
https://issues.apache.org/jira/browse/FELIX-5950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16637985#comment-16637985
 ] 

Olivier Prouvost commented on FELIX-5950:
-----------------------------------------

!MESSAGE FrameworkEvent ERROR

!STACK 0

+java.lang.NullPointerException+

       at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)

       at 
org.apache.felix.scr.impl.manager.MultiplePrototypeRefPair.unsetServiceObject(+MultiplePrototypeRefPair.java:67+)

       at 
org.apache.felix.scr.impl.manager.DependencyManager$AbstractCustomizer.ungetService(+DependencyManager.java:222+)

       at 
org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(+DependencyManager.java:392+)

       at 
org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.removedService(+DependencyManager.java:291+)

       at 
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(+ServiceTracker.java:1242+)

       at 
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerRemoved(+ServiceTracker.java:1137+)

       at 
org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.untrack(+ServiceTracker.java:997+)

       at 
org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(+ServiceTracker.java:1176+)

       at 
org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(+BundleComponentActivator.java:127+)

       at 
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(+FilteredServiceListener.java:109+)

       at 
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(+BundleContextImpl.java:920+)

       at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(+EventManager.java:230+)

       at 
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(+ListenerQueue.java:148+)

       at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(+ServiceRegistry.java:862+)

       at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(+ServiceRegistry.java:801+)

       at 
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(+ServiceRegistrationImpl.java:222+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(+AbstractComponentManager.java:925+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager$3.unregister(+AbstractComponentManager.java:890+)

       at 
org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(+RegistrationManager.java:139+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager.unregisterService(+AbstractComponentManager.java:967+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager.doDeactivate(+AbstractComponentManager.java:822+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager.deactivateInternal(+AbstractComponentManager.java:804+)

       at 
org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(+AbstractComponentManager.java:580+)

       at 
org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.disposeComponents(+ConfigurableComponentHolder.java:706+)

       at 
org.apache.felix.scr.impl.BundleComponentActivator.dispose(+BundleComponentActivator.java:523+)

       at 
org.apache.felix.scr.impl.Activator.disposeComponents(+Activator.java:436+)

       at org.apache.felix.scr.impl.Activator.access$300(+Activator.java:52+)

       at 
org.apache.felix.scr.impl.Activator$ScrExtension.destroy(+Activator.java:290+)

       at 
org.apache.felix.scr.impl.AbstractExtender$1.run(+AbstractExtender.java:216+)

       at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

       at java.util.concurrent.FutureTask.run(Unknown Source)

       at 
org.apache.felix.scr.impl.AbstractExtender.destroyExtension(+AbstractExtender.java:238+)

       at 
org.apache.felix.scr.impl.AbstractExtender.bundleChanged(+AbstractExtender.java:132+)

       at 
org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(+BundleContextImpl.java:908+)

       at 
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(+EventManager.java:230+)

       at 
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(+ListenerQueue.java:148+)

       at 
org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(+EquinoxEventPublisher.java:230+)

       at 
org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(+EquinoxEventPublisher.java:137+)

       at 
org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(+EquinoxEventPublisher.java:129+)

       at 
org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(+EquinoxContainerAdaptor.java:191+)

       at org.eclipse.osgi.container.Module.publishEvent(+Module.java:476+)

       at org.eclipse.osgi.container.Module.doStop(+Module.java:634+)

       at org.eclipse.osgi.container.Module.stop(+Module.java:498+)

       at 
org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(+ModuleContainer.java:1723+)

       at 
org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(+ModuleContainer.java:1642+)

       at 
org.eclipse.osgi.container.SystemModule.stopWorker(+SystemModule.java:270+)

       at 
org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(+EquinoxBundle.java:192+)

       at org.eclipse.osgi.container.Module.doStop(+Module.java:636+)

       at org.eclipse.osgi.container.Module.stop(+Module.java:498+)

       at org.eclipse.osgi.container.SystemModule.stop(+SystemModule.java:202+)

       at 
org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(+EquinoxBundle.java:210+)

       at java.lang.Thread.run(Unknown Source)

> NPE in  MultiplePrototypeRefPair.unsetServiceObject
> ---------------------------------------------------
>
>                 Key: FELIX-5950
>                 URL: https://issues.apache.org/jira/browse/FELIX-5950
>             Project: Felix
>          Issue Type: Bug
>          Components: Dependency Manager Runtime
>         Environment: Mac OS X 10.14
>            Reporter: Olivier Prouvost
>            Priority: Major
>
> I use Felix with the eclipse runtime (Photon 0918), and I get a NPE when 
> running my application. 
>  
> Actually in the code of 
> MultiplePrototypeRefPair.unsetServiceObject we have :  instances.get(key). 
> If we search for the callers, the DependencyManager class call It like this : 
>  
>        protected void ungetService(RefPair<S, T> ref)
>         {
>             Object service = ref.unsetServiceObject(*null*);
>             if (service != null)
>  
> Unfortunately, the instances map is a ConcurentHashMap which can not deal 
> with null keys (it calls key.hashcode at the beginning), and this call will 
> always raise an exception... 
> Don't know what is the Felix version involved, but the bundle I use in my 
> launch configuration is  (org.apache.felix.scr 2.0.14.v20180117)
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to