RFR 8157318: ThreadedSeedGenerator uses System.currentTimeMillis and stops generating when time is set back

Wang Weijun weijun.wang at oracle.com
Wed Jun 15 03:12:23 UTC 2016


Please take a review on the patch

diff --git a/src/java.base/share/classes/sun/security/provider/SeedGenerator.java b/src/java.base/share/classes/sun/security/provider/SeedGenerator.java
--- a/src/java.base/share/classes/sun/security/provider/SeedGenerator.java
+++ b/src/java.base/share/classes/sun/security/provider/SeedGenerator.java
@@ -354,8 +354,8 @@
                         // We wait 250milli quanta, so the minimum wait time
                         // cannot be under 250milli.
                         int latch = 0;
-                        long l = System.currentTimeMillis() + 250;
-                        while (System.currentTimeMillis() < l) {
+                        long l = System.nanoTime() + 250000000;
+                        while (System.nanoTime() < l) {
                             synchronized(this){};
                             latch++;
                         }

nanoTime() is for elapsed time and should be used here.

Thanks
Max


More information about the security-dev mailing list