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; }