On Sat, 4 Dec 2021 08:47:03 GMT, Peter Levart <[email protected]> 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