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)