JavaNSQClient
JavaNSQClient copied to clipboard
Bug while connection close gives an exception
While doing a connection close, there is an Channel Inactive which is un-caught. Hence, the connection is not removed. So I'm left with a stale connection, and not able to reconnect due to an existing entry to that address.
Logs: 16:14:47.245 INFO Remove connection server:4150 - NSQConsumer.connect 16:14:47.245 INFO Closing connection: com.github.brainlag.nsq.Connection@188fe003 - Connection.close 16:14:47.246 INFO Channel disconnected! com.github.brainlag.nsq.Connection@188fe003 - NSQHandler.channelInactive
Fix could be to put in try catch
for (final ServerAddress server : Sets.difference(oldAddresses, newAddresses)) {
LogManager.getLogger(this).info("Remove connection " + server.toString());
try {
connections.get(server).close();
} catch (Exception e) {
LogManager.getLogger(this).error("Close connection failed: " + e.getMessage(), e);
} finally {
connections.remove(server);
}
}
https://github.com/brainlag/JavaNSQClient/blob/d0e6612afac2731d0ed10ff5b12f75429149db48/src/main/java/com/github/brainlag/nsq/NSQConsumer.java#L204