From 26275e8a3d831b20db752cadca758f78c88b88c6 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Tue, 4 Jun 2019 08:13:44 -0400 Subject: [PATCH] Close delegate resolver from RoundRobinInetAddressResolver (#9214) Motivation: RoundRobinDnsAddressResolverGroup ultimately opens UDP ports for DNS resolution. Callers likely expect that RoundRobinDnsAddressResolverGroup#close() will close those ports, but that is not currently true (see #9212). Modifications: Overrode RoundRobinInetAddressResolver#close() to close the delegate name resolver, which in turn closes any UDP ports used for name resolution. Result: RoundRobinDnsAddressResolverGroup#close() closes UDP ports as expected. This fixes #9212. --- .../io/netty/resolver/RoundRobinInetAddressResolver.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resolver/src/main/java/io/netty/resolver/RoundRobinInetAddressResolver.java b/resolver/src/main/java/io/netty/resolver/RoundRobinInetAddressResolver.java index 91b04d250a..f09d26d652 100644 --- a/resolver/src/main/java/io/netty/resolver/RoundRobinInetAddressResolver.java +++ b/resolver/src/main/java/io/netty/resolver/RoundRobinInetAddressResolver.java @@ -94,4 +94,9 @@ public class RoundRobinInetAddressResolver extends InetNameResolver { private static int randomIndex(int numAddresses) { return numAddresses == 1 ? 0 : ThreadLocalRandom.current().nextInt(numAddresses); } + + @Override + public void close() { + nameResolver.close(); + } }