summaryrefslogtreecommitdiff
path: root/java/src/Ice/_ObjectDelM.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2001-12-12 18:40:53 +0000
committerMark Spruiell <mes@zeroc.com>2001-12-12 18:40:53 +0000
commitdb61665e521305002f6b9da66b2a8ee9078cfa5e (patch)
treed4bf1bbba0099130a4ebdc9e4092091b8511944e /java/src/Ice/_ObjectDelM.java
parentfix for nonmutating ops (diff)
downloadice-db61665e521305002f6b9da66b2a8ee9078cfa5e.tar.bz2
ice-db61665e521305002f6b9da66b2a8ee9078cfa5e.tar.xz
ice-db61665e521305002f6b9da66b2a8ee9078cfa5e.zip
randomize endpoints
Diffstat (limited to 'java/src/Ice/_ObjectDelM.java')
-rw-r--r--java/src/Ice/_ObjectDelM.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/java/src/Ice/_ObjectDelM.java b/java/src/Ice/_ObjectDelM.java
index 7b54b9657e8..2a8bb93da0c 100644
--- a/java/src/Ice/_ObjectDelM.java
+++ b/java/src/Ice/_ObjectDelM.java
@@ -149,12 +149,25 @@ public class _ObjectDelM implements _ObjectDel
new IceInternal.Endpoint[endpoints.size()];
endpoints.toArray(arr);
- // TODO
- //random_shuffle(endpoints.begin(), endpoints.end());
+ random_shuffle(arr);
IceInternal.EmitterFactory factory =
__reference.instance.emitterFactory();
__emitter = factory.create(arr);
assert(__emitter != null);
}
+
+ private static java.util.Random __random = new java.util.Random();
+
+ private static void
+ random_shuffle(IceInternal.Endpoint[] arr)
+ {
+ for (int i = 0; i < arr.length; i++)
+ {
+ int pos = Math.abs(__random.nextInt() % arr.length);
+ IceInternal.Endpoint tmp = arr[pos];
+ arr[pos] = arr[i];
+ arr[i] = tmp;
+ }
+ }
}