[ 
https://issues.apache.org/jira/browse/FELIX-4394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre De Rop resolved FELIX-4394.
----------------------------------
       Resolution: Fixed
    Fix Version/s: dependencymanager-4.0.0

All the mentioned synchronization issues have been fixed in DM4 (but the patch 
attached to this issue has not been applied since DM4 has been totally revamped 
using a new single thread model).

> Race problems in DependencyManager Configuration Dependency
> -----------------------------------------------------------
>
>                 Key: FELIX-4394
>                 URL: https://issues.apache.org/jira/browse/FELIX-4394
>             Project: Felix
>          Issue Type: Bug
>          Components: Dependency Manager
>    Affects Versions: dependencymanager-3.1.0
>            Reporter: Pierre De Rop
>            Assignee: Pierre De Rop
>             Fix For: dependencymanager-4.0.0
>
>
> There are some synchronization issues in the ConfigurationDependencyImpl:
> 1) in the stop(DependencyService service) method, if the current size of the 
> "m_services" list is greater than 1, then the 'service' method parameter to 
> be removed is not removed from the internal "m_services" list. 
> Also, if the list size is 1, then the service is removed from the list, but 
> outside the synchronized block.
> 2) in the updated(Dictionary settings) method: the service list (m_services) 
> is iterated outside a synchronized block.
> 3) the ensureActive method should be synchronized since it checks the 
> m_services list size.
> 4) I'm sometimes seeing the following WARN message logged from the 
> ConfigurationDependencyImpl.updated class:
>                     m_logger.log(Logger.LOG_ERROR, "Service " + ds + " with 
> configuration dependency " + this + " could not be instantiated.");



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to