On Wed, 9 Sep 2020 15:13:29 GMT, Paul Sandoz <psan...@openjdk.org> wrote:
>> * Release fence guarantees that cacheArray field will published with a >> non-null value. >> * Without this fix, CacheValueMap.cacheArray can sometimes be seen as null. >> >> This is a follow up to @PaulSandoz's feedback >> [here](https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-August/068248.html) >> for the first attempt to fix >> [JDK-8251397](https://bugs.openjdk.java.net/browse/JDK-8251397). In this >> update, the fence has been moved to >> `initializeMap()` and added Paul's suggested comment. >> Annotating `classValueMap` with `@Stable` is outside the scope of this issue. > > src/java.base/share/classes/java/lang/ClassValue.java line 381: > >> 379: if ((map = type.classValueMap) == null) { >> 380: map = new ClassValueMap(); >> 381: // Place a Store fence as the last operation to emulate > > Since the store was moved i suggest the comment be slightly updated: > "Place a Store fence after construction and before publishing to emulate" Done. ------------- PR: https://git.openjdk.java.net/jdk/pull/94