David Jencks created FELIX-3675:
-----------------------------------

             Summary: [DS] NPE shutting down a component due to service already 
removed
                 Key: FELIX-3675
                 URL: https://issues.apache.org/jira/browse/FELIX-3675
             Project: Felix
          Issue Type: Bug
          Components: Declarative Services (SCR)
    Affects Versions: scr-1.8.0
            Reporter: David Jencks
             Fix For: scr-1.8.0


Stack trace looks like this:

>Stack Dump = java.lang.NullPointerException
>       at 
> org.apache.felix.scr.impl.helper.BindMethod.getParameters(BindMethod.java:610)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:233)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:37)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:611)
>       at 
> org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:492)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager.invokeUnbindMethod(DependencyManager.java:1276)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager.unbind(DependencyManager.java:1131)
>       at 
> org.apache.felix.scr.impl.manager.DependencyManager.close(DependencyManager.java:970)
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.disposeImplementationObject(ImmediateComponentManager.java:274)
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.deleteComponent(ImmediateComponentManager.java:147)
>       at 
> org.apache.felix.scr.impl.manager.AbstractComponentManager$Active.ungetService(AbstractComponentManager.java:1697)
>       at 
> org.apache.felix.scr.impl.manager.ImmediateComponentManager.ungetService(ImmediateComponentManager.java:692)


I think that one thread is ungetting a service supplied by a DS component, and 
another thread is removing one of the dependencies of the DS component.  The 
shutdown thread (a) gets all the service references and then (b) goes through 
and tries to unbind them.  The parameter info for a service reference can be 
removed if another thread removes the service reference between (a) and (b). 

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

Reply via email to