[Igor Postelnik]
I'm working on a system that uses JGroups 2.6.3 to maintain cache
coherency. The system has a mix of long-lived services and short-lived
jobs, both of which join the group. We have noticed OOM errors in our
long-lived services and profiler shows FD_SOCK is the culprit. The
elements of FD_SOCK.ServerSocketHandler.clients are never removed,
even when ClientConnectionHandler terminates. It looks like
ClientConnectionHandler should just hold a reference to the
ServerSocketHandler.clients so that call to remove in the finally
block of run() method modifies the original list. Instead,
ClientConnectionHandler makes a copy of the list and so the original
list held by ServerSocketHandler.is never updated.