--- old/src/java.base/share/classes/java/util/concurrent/atomic/DoubleAdder.java 2021-01-09 11:35:44.729025822 -0800 +++ new/src/java.base/share/classes/java/util/concurrent/atomic/DoubleAdder.java 2021-01-09 11:35:44.397028433 -0800 @@ -92,13 +92,14 @@ !casBase(b = base, Double.doubleToRawLongBits (Double.longBitsToDouble(b) + x))) { + int index = getProbe(); boolean uncontended = true; if (cs == null || (m = cs.length - 1) < 0 || - (c = cs[getProbe() & m]) == null || + (c = cs[index & m]) == null || !(uncontended = c.cas(v = c.value, Double.doubleToRawLongBits (Double.longBitsToDouble(v) + x)))) - doubleAccumulate(x, null, uncontended); + doubleAccumulate(x, null, uncontended, index); } }