On Sun, 28 Feb 2021 04:56:07 GMT, Sergey Bylokhov <s...@openjdk.org> wrote:
>> https://github.com/openjdk/jdk/pull/2691#issuecomment-784367127 >> >> In short, previously platformFontMap references were field set/gets and may >> be inconsistent due to concurrency. It is now moved to a local variable; >> also the map modifications have been moved to fields to avoid concurrency >> issues with hash map as far as I can see. > > One thread may create the local platformFontMap, then set the static > SunFontManager.platformFontMap field, and then initialize the platformFontMap > or mix these operations. The second thread may see non-null > SunFontManager.platformFontMap which is not still initialized. Made `volatile` to guarantee memory visibility if thread saw non-null value. ------------- PR: https://git.openjdk.java.net/jdk/pull/2762