RFR: JDK-8273162 AbstractSplittableWithBrineGenerator does not create a random salt

Jim Laskey jlaskey at openjdk.java.net
Thu Sep 9 18:07:18 UTC 2021

RandomSupport.AbstractSplittableWithBrineGenerator. makeSplitsSpliterator is intending to create a salt from a random long. The salt should have random letters of size 4 for each consecutive 4 bits and then the last 4 bits as ff, i.e. all bits set. 

However the loop is never executed, the random bits are not used and the salt is always the same. 

This condition is false on the first execution: 

  long multiplier = (1L << SALT_SHIFT) - 1; 
  long salt = multiplier << (64 - SALT_SHIFT); 
  while ((salt & multiplier) != 0) { 

This can be corrected by changing: 

  while ((salt & multiplier) != 0) { 


  while ((salt & multiplier) == 0) {


Commit messages:
 - Correct the loop condition

Changes: https://git.openjdk.java.net/jdk/pull/5449/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=5449&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273162
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/5449.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/5449/head:pull/5449

PR: https://git.openjdk.java.net/jdk/pull/5449

More information about the core-libs-dev mailing list