When an RMIClientSocketFactory or RMIServerSocketFactory instance is used to export a remote object (with UnicastRemoteObject, Activatable, or LocateRegistry.createRegistry), that instance becomes pinned for the lifetime of the VM by the RMI implementation: it and its dependencies (such as its class's defining class loader and all other classes that that loader has defined) can never be garbage collected, even after the remote object has itself been garbage collected or otherwise unexported. This pinning is rooted in the static table "localEndpoints" in the sun.rmi.transport.tcp.TCPEndpoint class.
(This bug is the server-side analogue of 4486732, which has been fixed.)