[
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)