On Fri, 10 Dec 2021 21:07:37 GMT, Roman Kennke <rken...@openjdk.org> 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