RFR: 8256167: Convert JDK use of `Reference::get` to `Reference::refersTo`

Peter Levart plevart at openjdk.java.net
Fri Dec 4 19:50:15 UTC 2020


On Thu, 3 Dec 2020 22:54:54 GMT, Mandy Chung <mchung at openjdk.org> wrote:

> This patch replaces some uses of `Reference::get` to `Reference::refersTo` to avoid keeping a referent strongly reachable that could cause unnecessary delay in collecting such object.   I only made change in some but not all classes in core libraries when working with Kim on `Reference::refersTo`.    The remaining uses are left for the component owners to convert at appropriate time.

src/java.management/share/classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java line 127:

> 125:             T got = get();
> 126:             return got != null && wr.refersTo(got);
> 127:         }

Here you could pre-screen the get() with:

if (this.refersTo(null) != wr.refersTo(null)) return false;

In case one of the two WeakReference(s) is cleared and the other is not, they are not equal and you don't call this.get() in such case.

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

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


More information about the serviceability-dev mailing list