[
https://issues.apache.org/jira/browse/FELIX-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Meschberger closed FELIX-3288.
------------------------------------
Close after release
> NPE when component exposed as a service with servicefactory = true
> ------------------------------------------------------------------
>
> Key: FELIX-3288
> URL: https://issues.apache.org/jira/browse/FELIX-3288
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.6.0
> Reporter: Jarek Gawor
> Assignee: Felix Meschberger
> Fix For: scr-1.6.2
>
> Attachments: FELIX-3288.patch
>
>
> I have a component that is exposed as a service and is also configured with
> servicefactory = true. I see the following NPE when shutting the framework:
> java.lang.NullPointerException
> at
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:252)
> at
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:135)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Satisfied.deactivate(AbstractComponentManager.java:1075)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.disposeInternal(AbstractComponentManager.java:357)
> at
> org.apache.felix.scr.impl.manager.AbstractComponentManager.dispose(AbstractComponentManager.java:196)
> at
> org.apache.felix.scr.impl.config.ConfiguredComponentHolder.disposeComponents(ConfiguredComponentHolder.java:299)
> at
> org.apache.felix.scr.impl.BundleComponentActivator.dispose(BundleComponentActivator.java:319)
> at
> org.apache.felix.scr.impl.Activator.disposeComponents(Activator.java:340)
> at org.apache.felix.scr.impl.Activator.bundleChanged(Activator.java:207)
> Since the component is configured with servicefactory = true,
> ServiceFactoryComponentManager is used to manage the object.
> ServiceFactoryComponentManager overrides the createComponent() method from
> ImmediateComponentManager. ServiceFactoryComponentManager also intended (I
> think) to override the corresponding deleteComponent() method from
> ImmediateComponentManager. However, the signature of the deleteComponent() in
> ImmediateComponentManager has changed a bit so the override doesn't work
> anymore. So that's what I think is causing the problem in this case.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira