equal
deleted
inserted
replaced
132 * The next seed for default constructors. |
132 * The next seed for default constructors. |
133 */ |
133 */ |
134 private static final AtomicLong seeder = new AtomicLong(initialSeed()); |
134 private static final AtomicLong seeder = new AtomicLong(initialSeed()); |
135 |
135 |
136 private static long initialSeed() { |
136 private static long initialSeed() { |
137 java.security.PrivilegedAction<Boolean> action = |
137 if (java.security.AccessController.doPrivileged( |
138 () -> Boolean.getBoolean("java.util.secureRandomSeed"); |
138 new java.security.PrivilegedAction<Boolean>() { |
139 if (java.security.AccessController.doPrivileged(action)) { |
139 public Boolean run() { |
|
140 return Boolean.getBoolean("java.util.secureRandomSeed"); |
|
141 }})) { |
140 byte[] seedBytes = java.security.SecureRandom.getSeed(8); |
142 byte[] seedBytes = java.security.SecureRandom.getSeed(8); |
141 long s = (long)seedBytes[0] & 0xffL; |
143 long s = (long)seedBytes[0] & 0xffL; |
142 for (int i = 1; i < 8; ++i) |
144 for (int i = 1; i < 8; ++i) |
143 s = (s << 8) | ((long)seedBytes[i] & 0xffL); |
145 s = (s << 8) | ((long)seedBytes[i] & 0xffL); |
144 return s; |
146 return s; |