RFR [8046339] sun.rmi.transport.DGCAckHandler leaks memory

Ivan Gerasimov ivan.gerasimov at oracle.com
Mon Aug 11 13:41:45 UTC 2014

Hello everyone!

It has been reported that under some conditions instances of 
sun.rmi.transport.DGCAckHandler accumulate and can cause OOM Error.
This is because they are stored in the global DGCAckHandler.idTable map, 
and may fail to be removed if a timeout has expired.

The webrev contains a fix proposed by Darryl Mocek back in 2011.

Unfortunately I couldn't come up with a regression test for the fix.
However, the fix looks obviously correct, especially taking into account 
the comment to the constructor:

      * References added to this DGCAckHandler will be held strongly
      * until its "release" method is invoked or (after the
      * "startTimer" method has been invoked) the timeout has expired.

Would you please help review the fix?

BUGURL: https://bugs.openjdk.java.net/browse/JDK-8046339
WEBREV: http://cr.openjdk.java.net/~igerasim/8046339/0/webrev/

Sincerely yours,

More information about the core-libs-dev mailing list