In sun.nio.ch.PendingFuture, there is a static cached Throwable
private static final CancellationException CANCELLED =
new CancellationException();
Apparently, its Throwable.backtrace field contains an array of all
Classes on the call stack. This will prevent the user classes from
being garbage collected.
Zhong Yu