Author: slaws
Date: Mon Mar 19 13:29:34 2012
New Revision: 1302422
URL: http://svn.apache.org/viewvc?rev=1302422&view=rev
Log:
TUSCANY-4025 - enhance the previous fix for this JIRA to call the listeners in
reverse order. Node listeners will be added before other listeners that deal
with the nodes contributions so we want the contribution to hang around in the
node until all the other listeners have done their thing.
Modified:
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/DomainRegistryImpl.java
Modified:
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/DomainRegistryImpl.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/DomainRegistryImpl.java?rev=1302422&r1=1302421&r2=1302422&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/DomainRegistryImpl.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/DomainRegistryImpl.java
Mon Mar 19 13:29:34 2012
@@ -24,6 +24,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.ListIterator;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.Callable;
@@ -210,7 +211,15 @@ public class DomainRegistryImpl extends
}
public void uninstallContribution(String uri) {
- for (ContributionListener listener : contributionlisteners) {
+ // TUSCANY-4025 - iterate through this list in reverse
+ // in the expectation that a node listener
+ // will appear in the list before and other
+ // listener that appears in the list and which
+ // relies on the node still have the contribution
+ // information.
+ ListIterator<ContributionListener> listenerIterator =
contributionlisteners.listIterator(contributionlisteners.size());
+ while (listenerIterator.hasPrevious()) {
+ ContributionListener listener = listenerIterator.previous();
listener.contributionRemoved(uri);
}
contributionDescriptions.remove(uri);