Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsboshev2009-10-13 13:53:59 +0000
committersboshev2009-10-13 13:53:59 +0000
commitb500566970e32c0ed81245cbf20a9a3a29df722e (patch)
treebfa5361b89c505a2e152341216e5f9cf760277d5 /bundles
parentd1bc3afb8ccd96de7ca8b9893b6598b14ecbeb8b (diff)
downloadrt.equinox.bundles-b500566970e32c0ed81245cbf20a9a3a29df722e.tar.gz
rt.equinox.bundles-b500566970e32c0ed81245cbf20a9a3a29df722e.tar.xz
rt.equinox.bundles-b500566970e32c0ed81245cbf20a9a3a29df722e.zip
Bug 291037. WireAdmin does not produce unique persistent IDs for Wires
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.equinox.wireadmin/src/org/eclipse/equinox/internal/wireadmin/WireAdminImpl.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.wireadmin/src/org/eclipse/equinox/internal/wireadmin/WireAdminImpl.java b/bundles/org.eclipse.equinox.wireadmin/src/org/eclipse/equinox/internal/wireadmin/WireAdminImpl.java
index 4a04869f4..b2b5a9372 100644
--- a/bundles/org.eclipse.equinox.wireadmin/src/org/eclipse/equinox/internal/wireadmin/WireAdminImpl.java
+++ b/bundles/org.eclipse.equinox.wireadmin/src/org/eclipse/equinox/internal/wireadmin/WireAdminImpl.java
@@ -41,6 +41,8 @@ class WireAdminImpl implements WireAdmin, ManagedServiceFactory, ServiceListener
private Vector waitForUpdate = new Vector();
+ long counter = System.currentTimeMillis();
+
/**
* Constructs an <code>WireAdminImpl</code> object, which provides
* Framework with methods for manipulating a <code>Wire</code> objects.
@@ -571,8 +573,12 @@ class WireAdminImpl implements WireAdmin, ManagedServiceFactory, ServiceListener
return false;
}
- private static String getNextPID() {
- return PID_PREFIX + System.currentTimeMillis();
+ private final String getNextPID() {
+ String nextPID = PID_PREFIX + counter++;
+ while (wires.get(nextPID) != null) {
+ nextPID = PID_PREFIX + counter++;
+ }
+ return nextPID;
}
boolean hasAConnectedWire(boolean isProducer, String pid) {

Back to the top