Hi all, I've created patch [1] to fix the ClassValue$ClassValueMap NPE bug in [2].
The bug has been discussed by other members in the list in thread [3]. The patch follows the simple fix suggested by Doug and others in that exchange, e.g. [4]. That is, it adds a release fence to ClassValue$ClassValueMap constructor to avoid the NPE. To verify the fix, I ran the jcstress test that Paul posted in [5] and played around with the difference fixes suggested in the thread. Adding the release fence did indeed fix the jcstress test. To further verify the issue, I've successfully run both the tier1 tests and the Quarkus native testsuite with a Mandrel 20.1 built with JDK 11.0.8 version patched with the fix (higher JDKs not supported yet). Note that this NPE happens on rare occasions. The patch applies cleanly to JDK 11. Galder [1] Webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/galder/JDK-8251397/01/webrev/ [2] Bug: https://bugs.openjdk.java.net/browse/JDK-8251397 [3] https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-August/068086.html [4] https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-August/068126.html [5] https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-August/068110.html