On Thu, 7 Apr 2022 22:49:24 GMT, Bradford Wetmore <wetm...@openjdk.org> wrote:

> > The socket close() call in the finalize() method may be blocked for the SSL 
> > implementation, which is not good for garbage collection. It should be safe 
> > by just removing the finalize() method.
`> 
> Can you provide more detail? I expected something more like your first 
> attempt (`java.lang.ref.Cleaner`) that would properly close/send the 
> close_notify message. Thanks!

The 1st use of Cleaner refer to 'this' object, as result in that 'this' object 
cannot be phantom reachable and thus the cleaner cannot be triggered.  As the 
close() is a method of 'this' object, the calling to close() in a cleaner will 
hold a reference to 'this' object, and make the cleaner failed (and memory 
leak).

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

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

Reply via email to