Automtatic reconnection is done via the JChannel.CloserThread thread. It essentially closes the channel, then re-opens it and then loops trying to reconnect.
However, if there's an exception (e.g. closing or re-opening the channel), the thread terminates and doesn't reconnect the channel, therefore the cluster is not joined.
SOLUTION: wrap the close, open and reconnect attempts in try-catch clauses, so exceptions can be handled