Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2006-01-23 17:08:36 -0500
committerThomas Watson2006-01-23 17:08:36 -0500
commitb3988e5e762b6be20c702429d9e3a69a5dcb4f91 (patch)
treea05c608f91faf2aaf19b90111ddc77137038730c
parent32d72fed1b88c4d029c7074caa11d6b0c495e197 (diff)
downloadrt.equinox.bundles-b3988e5e762b6be20c702429d9e3a69a5dcb4f91.tar.gz
rt.equinox.bundles-b3988e5e762b6be20c702429d9e3a69a5dcb4f91.tar.xz
rt.equinox.bundles-b3988e5e762b6be20c702429d9e3a69a5dcb4f91.zip
Bug 124740 [DS] static references have timing issues when resolvingv20060123
-rw-r--r--bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/ds/resolver/Resolver.java13
1 files changed, 5 insertions, 8 deletions
diff --git a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/ds/resolver/Resolver.java b/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/ds/resolver/Resolver.java
index fcdd537c..5f6eab08 100644
--- a/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/ds/resolver/Resolver.java
+++ b/bundles/org.eclipse.equinox.ds/src/org/eclipse/equinox/ds/resolver/Resolver.java
@@ -34,7 +34,7 @@ import org.osgi.util.tracker.ServiceTracker;
* The Resolver implements AllServiceListener so it can be informed about service
* changes in the framework.
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.1 $
*/
public class Resolver implements AllServiceListener, WorkDispatcher {
@@ -455,9 +455,8 @@ public class Resolver implements AllServiceListener, WorkDispatcher {
newlySatisfiedCDPs.removeAll(satisfiedCDPs);
if (!newlySatisfiedCDPs.isEmpty()) {
+ satisfiedCDPs.addAll(newlySatisfiedCDPs); // add to satisfiedCDPs before dispatch
workQueue.enqueueWork(this, BUILD, newlySatisfiedCDPs);
-
- satisfiedCDPs.addAll(newlySatisfiedCDPs);
}
}
@@ -474,9 +473,8 @@ public class Resolver implements AllServiceListener, WorkDispatcher {
List newlySatisfiedCDPs = resolveSatisfied();
newlySatisfiedCDPs.removeAll(satisfiedCDPs);
if (!newlySatisfiedCDPs.isEmpty()) {
+ satisfiedCDPs.addAll(newlySatisfiedCDPs); // add to satisfiedCDPs before dispatch
workQueue.enqueueWork(this, BUILD, newlySatisfiedCDPs);
-
- satisfiedCDPs.addAll(newlySatisfiedCDPs);
}
}
@@ -510,9 +508,8 @@ public class Resolver implements AllServiceListener, WorkDispatcher {
List newlySatisfiedCDPs = resolveSatisfied();
newlySatisfiedCDPs.removeAll(satisfiedCDPs);
if (!newlySatisfiedCDPs.isEmpty()) {
+ satisfiedCDPs.addAll(newlySatisfiedCDPs); // add to satisfiedCDPs before dispatch
workQueue.enqueueWork(this, BUILD, newlySatisfiedCDPs);
-
- satisfiedCDPs.addAll(newlySatisfiedCDPs);
}
}
@@ -781,7 +778,7 @@ public class Resolver implements AllServiceListener, WorkDispatcher {
* Doubly-linked node used to traverse the dependency tree in order to
* find cycles.
*
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.1 $
*/
static private class ReferenceCDP {
public Reference ref;

Back to the top