diff --git a/resolver-dns/src/main/java/io/netty/resolver/dns/DefaultDnsCache.java b/resolver-dns/src/main/java/io/netty/resolver/dns/DefaultDnsCache.java index 3cbb1a367d..d5431362fe 100644 --- a/resolver-dns/src/main/java/io/netty/resolver/dns/DefaultDnsCache.java +++ b/resolver-dns/src/main/java/io/netty/resolver/dns/DefaultDnsCache.java @@ -65,8 +65,8 @@ public class DefaultDnsCache implements DnsCache { * @param negativeTtl the TTL for failed queries */ public DefaultDnsCache(int minTtl, int maxTtl, int negativeTtl) { - this.minTtl = checkPositiveOrZero(minTtl, "minTtl"); - this.maxTtl = checkPositiveOrZero(maxTtl, "maxTtl"); + this.minTtl = Math.min(MAX_SUPPORTED_TTL_SECS, checkPositiveOrZero(minTtl, "minTtl")); + this.maxTtl = Math.min(MAX_SUPPORTED_TTL_SECS, checkPositiveOrZero(maxTtl, "maxTtl")); if (minTtl > maxTtl) { throw new IllegalArgumentException( "minTtl: " + minTtl + ", maxTtl: " + maxTtl + " (expected: 0 <= minTtl <= maxTtl)"); diff --git a/resolver-dns/src/test/java/io/netty/resolver/dns/DefaultDnsCacheTest.java b/resolver-dns/src/test/java/io/netty/resolver/dns/DefaultDnsCacheTest.java index 806f8f9e90..17aba98e3c 100644 --- a/resolver-dns/src/test/java/io/netty/resolver/dns/DefaultDnsCacheTest.java +++ b/resolver-dns/src/test/java/io/netty/resolver/dns/DefaultDnsCacheTest.java @@ -86,6 +86,19 @@ public class DefaultDnsCacheTest { } } + @Test + public void testExpireWithToBigMinTTL() { + EventLoopGroup group = new NioEventLoopGroup(1); + + try { + EventLoop loop = group.next(); + final DefaultDnsCache cache = new DefaultDnsCache(Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE); + assertNotNull(cache.cache("netty.io", null, NetUtil.LOCALHOST, 100, loop)); + } finally { + group.shutdownGracefully(); + } + } + @Test public void testAddMultipleAddressesForSameHostname() throws Exception { InetAddress addr1 = InetAddress.getByAddress(new byte[] { 10, 0, 0, 1 });