Hey, thank you for your reply. Yeah, the thread is calling a blocking command because I have a timeout mechanism that gives the new client only a certain amount of time to reconnect. So its like::

ClientListener:
Code:
case "DISCONNECTED":
    clientHandler.switchConnection()
ClientHandler:
Code:
switchConnection():
// configure client with new connections
client.add(new ClientListener(CountDownLatch) )------> Upon receiving status "CONNECTED: WS-STREAMING" it counts down the latch
client.connect()
if (!countDownLatch.wait(timeoutTime)) {
    // throw error, couldn't connect
}