On Sat, 4 Dec 2021 08:47:03 GMT, Peter Levart <plev...@openjdk.org> wrote:

>> Roman Kennke has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Remove unnecessary import
>
> src/java.base/share/classes/java/io/ClassCache.java line 63:
> 
>> 61:             protected SoftReference<T> computeValue(Class<?> type) {
>> 62:                 return new 
>> SoftReference<>(ClassCache.this.computeValue(type), queue);
>> 63:             }
> 
> How does this work? You create a bare SoftReference here and register it with 
> queue....
> 
> ...then down in processQueue() you pick it up and cast to CacheRef... Doesn't 
> this throw ClassCastException ?

> 

Indeed, good catch! Apparently no test (existing or new) covers the 
memory-pressure scenario. My new test only covers the scenario when the Class 
disappears altogether. I added a test to verify behaviour under memory 
pressure, and pushed a fix.

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

PR: https://git.openjdk.java.net/jdk/pull/6375

Reply via email to