On Fri, 10 Dec 2021 21:07:37 GMT, Roman Kennke <[email protected]> wrote:
>> As a follow-up to #6375, this change refactors
>> java.io.ObjectInputStream.Caches#subclassAudits and
>> java.io.ObjectOutputStream.Caches#subclassAudits to use ClassValue instead
>> of SoftReference, similar to what we did in #6375 for
>> java.io.ObjectStreamClass.Caches#localDescs. Then we can now also remove the
>> common machinery java.io.ObjectStreamClass#processQueue and
>> java.io.ObjectStreamClass.WeakClassKey.
>>
>> Testing:
>> - [x] tier1
>> - [x] tier2
>> - [ ] tier3
>
> Roman Kennke has updated the pull request with a new target base due to a
> merge or a rebase. The pull request now contains ten commits:
>
> - Merge branch 'master' into JDK-8278065
> - 8278065: Refactor subclassAudits to use ClassValue
> - Remove unused EntryFuture inner class from ObjectSteamClass
> - Merge remote-tracking branch 'jdk-plevart/JDK-8277072-peter' into
> JDK-8277072
> - Use ClassValue to solve JDK-8277072
> - Use ForceGC instead of System.gc()
> - Convert test to testng
> - Fix indentation of new testcase
> - 8277072: ObjectStreamClass caches keep ClassLoaders alive
Marked as reviewed by plevart (Reviewer).
I think this looks good. Reviewed. Only a minor nit if you think it would be
better, but not necessary if you don't. The following combo:
Boolean result = Caches.subclassAudits.get(cl);
assert result != null;
could be written as:
boolean result = Caches.subclassAudits.get(cl);
...and it would give the same "message" to the reader. WDYT? No need for
another round of reviews if you change this.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6637