You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Pierre De Rop (JIRA)" <ji...@apache.org> on 2014/01/17 15:12:23 UTC

[jira] [Created] (FELIX-4394) Race problems in DependencyManager Configuration Dependency

Pierre De Rop created FELIX-4394:
------------------------------------

             Summary: 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


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.1.5#6160)