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

Reply via email to