src/share/classes/java/util/Random.java

Print this page

        

@@ -116,12 +116,18 @@
      *
      * @param seed the initial seed
      * @see   #setSeed(long)
      */
     public Random(long seed) {
+        if (getClass() == Random.class)
         this.seed = new AtomicLong(initialScramble(seed));
+        else {
+            // subclass might have overriden setSeed
+            this.seed = new AtomicLong();
+            setSeed(seed);
     }
+    }
 
     private static long initialScramble(long seed) {
         return (seed ^ multiplier) & mask;
     }