On Wed, 5 Mar 2025 15:19:27 GMT, Chen Liang <li...@openjdk.org> wrote:
>> After a call to `ClassValue.remove`, a `ClassValue` can still install a >> value that is computed with information that is not up-to-date with the >> remove call. This is demonstrated in the test case, where an innocuous >> `ClassValue.get` call on an uncomputed CV may happen to compute during which >> a remove happened, and proceed to install an outdated value onto a CV. >> >> The fix is simple - to force computation to retry when a remove has >> happened, so the retry can observe the up-to-date states from the remove. >> (finishEntry and removeEntry are both synchronized on the object monitor of >> the ClassValueMap instance) > > Chen Liang has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains three additional commits since > the last revision: > > - Improve docs > - Merge branch 'master' of https://github.com/openjdk/jdk into > fix/classvalue-remove > - 8351045: ClassValue::remove cannot ensure computation observes up-to-date > state Marked as reviewed by rriggs (Reviewer). ------------- PR Review: https://git.openjdk.org/jdk/pull/23866#pullrequestreview-2675920565