@@ -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