felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-4313) Bad synchronization in scr where a lock is held while ungetting a service
Date Thu, 14 Nov 2013 07:39:21 GMT

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

Guillaume Nodet commented on FELIX-4313:

All the other implementations of AbstractCustomizer do not hold any lock while calling getTracker().deactivate(),
so if a lock is needed, we'd have to fix them all.
In addition, the getTracker() and deactivate() methods seems thread safe at first glance,
as they access variables flagged as volatile and the deactivate method has itself an internal
synchronization block.  It follows the same pattern as lots of other methods in the ServiceTracker,
i.e. get the volatile tracked object, check for null, and process the real call while holding
a lock on this object.

> Bad synchronization in scr where a lock is held while ungetting a service
> -------------------------------------------------------------------------
>                 Key: FELIX-4313
>                 URL: https://issues.apache.org/jira/browse/FELIX-4313
>             Project: Felix
>          Issue Type: Bug
>          Components: Declarative Services (SCR)
>    Affects Versions: scr-1.8.0
>            Reporter: Guillaume Nodet
>            Assignee: Guillaume Nodet
>            Priority: Minor
>             Fix For: scr-1.8.2
> The problem is located in DependencyManeger$SingleStaticCustomizer.close()

This message was sent by Atlassian JIRA

View raw message