On Thu, 8 May 2025 16:19:41 GMT, Jaikiran Pai <j...@openjdk.org> wrote:

>> Chen Liang has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Update src/java.base/share/classes/java/lang/ClassValue.java
>>   
>>   Co-authored-by: Shaojin Wen <shaojin.we...@alibaba-inc.com>
>
> src/java.base/share/classes/java/lang/ClassValue.java line 463:
> 
>> 461:                 var updated = entry.refreshVersion(classValue.version);
>> 462:                 if (updated != entry) {
>> 463:                     put(classValue.identity, updated);
> 
> This appears to associate a value and contradicts the `readAccess` method 
> name and the comment on the method that says "A simple read access to this 
> map".
> 
> Did I misunderstand what `readAccess` is meant in the context of `ClassValue` 
> semantics?

Yep, this is unfortunately required for the cache mechanism - `refreshVersion` 
returns an equivalent entry, except its version is the latest, so the cache can 
trust this entry, if present in the cache array of a ClassValue, is up-to-date.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24043#discussion_r2080089371

Reply via email to