felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Agemo Cui (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-1185) If a static/mandatory reference to a service is unregistered, the component should be deactivated synchronously instead of asynchronously
Date Wed, 03 Jun 2009 10:38:07 GMT

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

Agemo Cui commented on FELIX-1185:
----------------------------------

OK, I think I understand the original state transition now.
Factory state is only for those factory component and they never transit to Active(Actually,
factory means active for them).

So in the getService and ungetService of ServiceFactoryComponentManager, the check for Factory
state need be changed back to check for Registered state.

And for the safety of the double check, it's better to add "volatile" modifier to the AbstractComponentManager.m_state
.


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.


Mime
View raw message