Skip to content

Commit 8951a23

Browse files
committed
Fix build break when missing netty-dns-resolver #1546
1 parent 34476f5 commit 8951a23

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/main/java/io/lettuce/core/resource/AddressResolverGroupProvider.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,10 @@ class AddressResolverGroupProvider {
2929
static {
3030
boolean dnsResolverAvailable = LettuceClassUtils.isPresent("io.netty.resolver.dns.DnsAddressResolverGroup");
3131

32-
// create addressResolverGroup instance via Supplier to avoid NoClassDefFoundError.
3332
AddressResolverGroup<?> group;
3433
if (dnsResolverAvailable) {
3534
logger.debug("Starting with netty's non-blocking DNS resolver library");
36-
group = AddressResolverGroupProvider.defaultDnsAddressResolverGroup();
35+
group = DefaultDnsAddressResolverGroupWrapper.INSTANCE;
3736
} else {
3837
logger.debug("Starting without optional netty's non-blocking DNS resolver library");
3938
group = DefaultAddressResolverGroup.INSTANCE;
@@ -51,10 +50,14 @@ static AddressResolverGroup<?> addressResolverGroup() {
5150
return ADDRESS_RESOLVER_GROUP;
5251
}
5352

54-
private static AddressResolverGroup<?> defaultDnsAddressResolverGroup() {
55-
return new DnsAddressResolverGroup(new DnsNameResolverBuilder().channelType(Transports.datagramChannelClass())
56-
.socketChannelType(Transports.socketChannelClass().asSubclass(SocketChannel.class))
57-
.cnameCache(new DefaultDnsCnameCache()).resolveCache(new DefaultDnsCache()));
53+
// Wraps DnsAddressResolverGroup to avoid NoClassDefFoundError.
54+
private static class DefaultDnsAddressResolverGroupWrapper {
55+
56+
static AddressResolverGroup<?> INSTANCE = new DnsAddressResolverGroup(
57+
new DnsNameResolverBuilder().channelType(Transports.datagramChannelClass())
58+
.socketChannelType(Transports.socketChannelClass().asSubclass(SocketChannel.class))
59+
.cnameCache(new DefaultDnsCnameCache()).resolveCache(new DefaultDnsCache()));
60+
5861
}
5962

6063
}

0 commit comments

Comments
 (0)