summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/trunk')
-rw-r--r--sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
index 2abc441728..68d8191d91 100644
--- a/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
+++ b/sca-java-2.x/trunk/modules/domain-node/src/main/java/org/apache/tuscany/sca/impl/NodeImpl.java
@@ -24,6 +24,7 @@ import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -132,6 +133,15 @@ public class NodeImpl implements Node {
public void uninstallContribution(String contributionURI) {
domainRegistry.uninstallContribution(contributionURI);
+
+ // remove any stopped composite that used the contribution
+ Iterator<String> i = stoppedComposites.keySet().iterator();
+ while (i.hasNext()) {
+ DeployedComposite dc = stoppedComposites.get(i.next());
+ if (dc.getContributionURIs().contains(contributionURI)) {
+ i.remove();
+ }
+ }
}
protected void mergeContributionMetaData(String metaDataURL, Contribution contribution) throws ValidationException {