[ 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)