diff --git a/classpath/java/util/Random.java b/classpath/java/util/Random.java index 856f30424a..311230f538 100644 --- a/classpath/java/util/Random.java +++ b/classpath/java/util/Random.java @@ -13,7 +13,9 @@ package java.util; public class Random { private static final long Mask = 0x5DEECE66DL; - private static long nextSeed = 0; + private static final long InitialSeed = 123456789987654321L; + + private static long nextSeed = InitialSeed; private long seed; @@ -22,7 +24,13 @@ public class Random { } public Random() { - setSeed((nextSeed++) ^ System.currentTimeMillis()); + synchronized (Random.class) { + setSeed(nextSeed ^ System.currentTimeMillis()); + nextSeed *= 123456789987654321L; + if (nextSeed == 0) { + nextSeed = InitialSeed; + } + } } public void setSeed(long seed) {