Can an object be finalized while still weakly reachable?
Martin Buchholz
martinrb at google.com
Tue May 17 03:19:23 UTC 2016
I have some evidence that an object's finalize method can run while a
weak reference pointing to it is not yet cleared, which surprised me.
E.g.
class F { protected void finalize() { assert wref.get() != this; } }
static WeakReference wref = new WeakReference(new F());
If this is a bug, I can try to give y'all a repro recipe.
If not, we should fix the docs
"""When the weak references to a weakly-reachable object are cleared,
the object becomes eligible for finalization."""
(It's also quite possible I made a mistake diagnosing this)
More information about the core-libs-dev
mailing list