From 0f3d47199b95098b04ee774eb2730c2812bf4dd0 Mon Sep 17 00:00:00 2001 From: Norman Maurer Date: Thu, 4 Feb 2016 13:41:02 +0100 Subject: [PATCH] [#4834] Fix race in AddressResolverGroup Motivation: We miss to use synchronized when remove the executor from the map. Modifications: Add synchronized(...) keyword Result: No more race. --- .../src/main/java/io/netty/resolver/AddressResolverGroup.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resolver/src/main/java/io/netty/resolver/AddressResolverGroup.java b/resolver/src/main/java/io/netty/resolver/AddressResolverGroup.java index 89b00dfa04..509475eb3e 100644 --- a/resolver/src/main/java/io/netty/resolver/AddressResolverGroup.java +++ b/resolver/src/main/java/io/netty/resolver/AddressResolverGroup.java @@ -73,7 +73,9 @@ public abstract class AddressResolverGroup implements C executor.terminationFuture().addListener(new FutureListener() { @Override public void operationComplete(Future future) throws Exception { - resolvers.remove(executor); + synchronized (resolvers) { + resolvers.remove(executor); + } newResolver.close(); } });