git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jira] [Created] (ARIES-1841) Race condition on blueprint-cm with ConfigAdmin


Jean-Baptiste Onofré created ARIES-1841:
-------------------------------------------

             Summary: Race condition on blueprint-cm with ConfigAdmin
                 Key: ARIES-1841
                 URL: https://issues.apache.org/jira/browse/ARIES-1841
             Project: Aries
          Issue Type: Bug
          Components: Blueprint
    Affects Versions: blueprint-core-1.8.3, blueprint-core-1.9.0
            Reporter: Jean-Baptiste Onofré
            Assignee: Jean-Baptiste Onofré
             Fix For: blueprint-core-1.8.4, blueprint-core-1.9.1


If a blueprint bundle use CM like:

{code}
<cm-properties persistent-id="persistentId" id="my.config" xmlns="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.2.0"/>
{code}

if the configuration is created by another bundle (directly using {{ConfigurationAdmin}}) like:

{code}
        Configuration configuration = configurationAdmin.getConfiguration(CONFIG_PID, null);
        Dictionary<String, Object> dictionary = Optional.ofNullable(configuration.getProperties()).orElse(new Hashtable());
        for (Map.Entry entry : properties.entrySet()) {
            dictionary.put(entry.getKey().toString(), entry.getValue());
        }
       configuration.update(dictionary);
{code}

then, it's possible to have a race condition where the blueprint container thread starts whereas the config update is not complete (two different threads).

Blueprint CM should have an option to wait an updated config. For instance, it could check {{_felix_.cm.newConfiguration}} property.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)