From e44ee694c73a935c9c8ca20ef58c69123a63cf64 Mon Sep 17 00:00:00 2001 From: nathan Date: Mon, 26 Mar 2018 23:08:13 +0200 Subject: [PATCH] Ensure we always release the AddressEnvelope when doing DNS queries. --- .../network/dns/resolver/DnsNameResolverContext.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/dorkbox/network/dns/resolver/DnsNameResolverContext.java b/src/dorkbox/network/dns/resolver/DnsNameResolverContext.java index 7ecc9831..8eaa7254 100644 --- a/src/dorkbox/network/dns/resolver/DnsNameResolverContext.java +++ b/src/dorkbox/network/dns/resolver/DnsNameResolverContext.java @@ -342,6 +342,15 @@ class DnsNameResolverContext { if (promise.isDone() || future.isCancelled()) { queryLifecycleObserver.queryCancelled(allowedQueries); + + + // Check if we need to release the envelope itself. If the query was cancelled the getNow() will + // return null as well as the Future will be failed with a CancellationException. + DnsResponse result = future.getNow(); + if (result != null) { + result.release(); + } + return; }