[
https://issues.apache.org/jira/browse/FELIX-1239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Meschberger updated FELIX-1239:
-------------------------------------
Fix Version/s: (was: scr-1.0.10)
scr-1.2.0
Retargeting fixes for SCR 1.2.0 release. There will be no 1.0.10 release.
> AbstractComponentManager.getServiceReference need not be synchronized
> ---------------------------------------------------------------------
>
> Key: FELIX-1239
> URL: https://issues.apache.org/jira/browse/FELIX-1239
> Project: Felix
> Issue Type: Improvement
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.0.10
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
> Fix For: scr-1.2.0
>
>
> With the changes to redo the event machinery in the component managers, the
> AbstractComponentManager.getServiceReference method has been made
> synchronous. Since this method backs the
> ComponentContext.getServiceReference() such calls may be blocked while the
> AbstractComponentManager is changing state.
> The getServiceReference method should therefore not be synchronized and need
> not be either: We make the service reference field of the
> AbstractComponentManager volatile and before calling the
> State.getServiceReference method we copy the current state to a local
> variable before calling the getServiceReference method. In addition, we will
> have to cope for the situation that the Service becomes unregistered while
> trying to get the ServiceReference, which may cause an IllegalStateException
> to be thrown.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.