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

Felix Meschberger commented on FELIX-1185:
------------------------------------------

Thanks for pointing this out, I missed it.

Yes, you are right, this is probably wrong because the 
ServiceFactoryComponentManager is used if the component is defined as a service 
factory component (this is not the same as a ComponentFactory). In such a 
component each consumer bundle gets its own component instance.

The state of a ServiceFactory component is like that of a delayed component, 
REGISTERED. Only after the first bundle has asked for the service will the 
state change to ACTIVE.

The factory state is only used for component factories, which create component 
instances on-demand or upon configuration.

I fixed this in Rev. 781335

So, it this would be all for this bug, you may go ahead and close it. Thanks.

> If a static/mandatory reference to a service is unregistered, the component 
> should be deactivated synchronously instead of asynchronously
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-1185
>                 URL: https://issues.apache.org/jira/browse/FELIX-1185
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>    Affects Versions: scr-1.0.8
>            Reporter: Agemo Cui
>            Assignee: Felix Meschberger
>             Fix For: scr-1.0.10
>
>         Attachments: AbstractComponentManager.java, 
> AbstractComponentManager.java, ComponentFactoryImpl.java, scr-changes on 
> revision 778604.zip
>
>
> In the specification cmpn 112.3.3 Reference Policy, it says "Component 
> configurations are deactivated before any bound service for a reference 
> having a static policy becomes unavailable."
> My understanding is the deactivate method of the component must be called 
> before any unbind method for a static/mandatory reference is called. And it's 
> reasonable for a static/mandatory reference to be still available in the 
> deactivate method.
> If the component is deactivated asynchronously when a static/mandatory 
> reference to a service is unregistered, then it's possible that the unbind 
> method is called before the deactivate method is called, which makes the 
> service unavailable in the deactivate method.
> This bug may relate to FELIX-1178.
> The fix for this bug should also fix FELIX-1178. No need to add a new flag.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to