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

Reply via email to