From 1ae5935f214028334eb5cc2789f249f0dc9d324a Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Mon, 26 Nov 2018 13:38:19 +0300 Subject: [PATCH] Fixed - restored implementation of DnsAddressResolverGroupFactory. Issues solver of netty bug #8261 extracted to MultiDnsAddressResolverGroupFactory #1750 --- .../main/java/org/redisson/config/Config.java | 3 +- .../DnsAddressResolverGroupFactory.java | 6 +-- .../MultiDnsAddressResolverGroupFactory.java | 38 +++++++++++++++++++ 3 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 redisson/src/main/java/org/redisson/connection/MultiDnsAddressResolverGroupFactory.java diff --git a/redisson/src/main/java/org/redisson/config/Config.java b/redisson/src/main/java/org/redisson/config/Config.java index c0f28d6d8..fa648c725 100644 --- a/redisson/src/main/java/org/redisson/config/Config.java +++ b/redisson/src/main/java/org/redisson/config/Config.java @@ -28,6 +28,7 @@ import org.redisson.codec.JsonJacksonCodec; import org.redisson.codec.ReferenceCodecProvider; import org.redisson.connection.ConnectionManager; import org.redisson.connection.DnsAddressResolverGroupFactory; +import org.redisson.connection.MultiDnsAddressResolverGroupFactory; import org.redisson.connection.AddressResolverGroupFactory; import org.redisson.connection.ReplicatedConnectionManager; import org.redisson.misc.URIBuilder; @@ -94,7 +95,7 @@ public class Config { /** * AddressResolverGroupFactory switch between default and round robin */ - private AddressResolverGroupFactory addressResolverGroupFactory = new DnsAddressResolverGroupFactory(); + private AddressResolverGroupFactory addressResolverGroupFactory = new MultiDnsAddressResolverGroupFactory(); public Config() { } diff --git a/redisson/src/main/java/org/redisson/connection/DnsAddressResolverGroupFactory.java b/redisson/src/main/java/org/redisson/connection/DnsAddressResolverGroupFactory.java index 5aa9786b6..b93dae223 100644 --- a/redisson/src/main/java/org/redisson/connection/DnsAddressResolverGroupFactory.java +++ b/redisson/src/main/java/org/redisson/connection/DnsAddressResolverGroupFactory.java @@ -15,8 +15,6 @@ */ package org.redisson.connection; -import org.redisson.connection.dns.MultiDnsAddressResolverGroup; - import io.netty.channel.socket.DatagramChannel; import io.netty.resolver.dns.DnsAddressResolverGroup; import io.netty.resolver.dns.DnsServerAddressStreamProvider; @@ -32,9 +30,7 @@ public class DnsAddressResolverGroupFactory implements AddressResolverGroupFacto @Override public DnsAddressResolverGroup create(Class channelType, DnsServerAddressStreamProvider nameServerProvider) { - // Workaround for https://github.com/netty/netty/issues/8261 - return new MultiDnsAddressResolverGroup(channelType, nameServerProvider); -// return new DnsAddressResolverGroup(channelType, nameServerProvider); + return new DnsAddressResolverGroup(channelType, nameServerProvider); } } diff --git a/redisson/src/main/java/org/redisson/connection/MultiDnsAddressResolverGroupFactory.java b/redisson/src/main/java/org/redisson/connection/MultiDnsAddressResolverGroupFactory.java new file mode 100644 index 000000000..644120b79 --- /dev/null +++ b/redisson/src/main/java/org/redisson/connection/MultiDnsAddressResolverGroupFactory.java @@ -0,0 +1,38 @@ +/** + * Copyright 2018 Nikita Koksharov + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.redisson.connection; + +import org.redisson.connection.dns.MultiDnsAddressResolverGroup; + +import io.netty.channel.socket.DatagramChannel; +import io.netty.resolver.dns.DnsAddressResolverGroup; +import io.netty.resolver.dns.DnsServerAddressStreamProvider; + +/** + * Workaround for https://github.com/netty/netty/issues/8261 + * + * @author Nikita Koksharov + * + */ +public class MultiDnsAddressResolverGroupFactory implements AddressResolverGroupFactory { + + @Override + public DnsAddressResolverGroup create(Class channelType, + DnsServerAddressStreamProvider nameServerProvider) { + return new MultiDnsAddressResolverGroup(channelType, nameServerProvider); + } + +}