brainlag / JavaNSQClient

Fast Java client for NSQ
MIT License
90 stars 57 forks source link

ConcurrentModificationException in connect #36

Open tunesmith opened 7 years ago

tunesmith commented 7 years ago

It looks like this code from NSQConsumer.java (around line 202) will sometimes throw a ConcurrentModificationException:

        for (final ServerAddress server : Sets.difference(oldAddresses, newAddresses)) {
            LogManager.getLogger(this).info("Remove connection " + server.toString());
            connections.get(server).close();
            connections.remove(server);
        }

Since the exception is uncaught, the scheduler.scheduleAtFixedRate then silently fails, which is bad.