--- old/src/java.base/share/classes/sun/nio/ch/NativeObject.java 2018-04-05 09:38:24.779457717 -0700 +++ new/src/java.base/share/classes/sun/nio/ch/NativeObject.java 2018-04-05 09:38:24.507457878 -0700 @@ -388,7 +388,10 @@ return byteOrder; } - // Cache for page size + /** + * Cache for page size. + * Lazily initialized via a data race; safe because ints are atomic. + */ private static int pageSize = -1; /** @@ -397,9 +400,10 @@ * @return The page size, in bytes */ static int pageSize() { - if (pageSize == -1) - pageSize = unsafe.pageSize(); - return pageSize; + int value = pageSize; + if (value == -1) + pageSize = value = unsafe.pageSize(); + return value; } }