The FD_SOCK.handleSocketClose() debug log doesn't print the exception message part:

> peer node1 closed socket (java.net.SocketException)

It would be better to use toString() instead of class name so we can see why it's disconnected:

> peer node1 closed socket (java.net.SocketException: Connection reset by peer)
> peer node1 closed socket (java.net.SocketException: Read timeout)
> peer node1 closed socket (java.net.SocketException: No route to host)
> peer node1 closed socket (java.net.SocketException: Unexpected end of file from server)
Merge pull request #107 from nekop/fd_sock-debug-cause

The FD_SOCK.handleSocketClose() debug log doesn't print the exception me...