Lightweight finalization for the JDK without any drawbacks was: Why is finalize wrong?

Jaroslav Tulach jaroslav.tulach at
Thu Aug 7 07:43:43 UTC 2014

Dne Čt 7. srpna 2014 08:17:16, Andrew Haley napsal(a):
> I'm wondering whether it's really worth your time applying band-aids to
> a broken mechanism.

Under the assumption WeakReference and ReferenceQueue are flawless, there is no 
reason to call a mechanism based on WeakReference and ReferenceQueue synergy  

> An object can be
> "really gone" even when one of its instance methods is still executing.

That would probably signal a major flaw in the JVM. In any case, this is 
orthogonal to the discussion I am leading. I am operating on the assumption 
that the new APIs which were designed to replace Object.finalize - e.g. 
WeakReference and ReferenceQueue & co. are flawless.

> On 06/08/14 11:17, Jaroslav Tulach wrote:
> > Sure, but that cannot happen with activeQueue() as the referent is really
> > gone before appropriate is executed.
> I'm sure that it can happen, in just the same way.  

You are more than welcomed to prove your claim and report bug to JDK. I'd say.

More information about the core-libs-dev mailing list