From bd64aab81dbe9e02d80bd9385dcb85556df987be Mon Sep 17 00:00:00 2001 From: Pavel Ptashyts <49400901+pavel-ptashyts@users.noreply.github.com> Date: Mon, 20 Jul 2026 10:48:58 +0200 Subject: [PATCH] Avoid address promise allocation Move promise creation in NettyRequestSender.resolveAddresses into the explicit-address bypass path. Hostname and proxy resolution paths no longer allocate a succeeded promise they do not use, while explicit address requests keep the same completed Future behavior. Codex on behalf of Pavel Ptashyts Co-Authored-By: Codex --- .../org/asynchttpclient/netty/request/NettyRequestSender.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java index 36af9019b..0e03db7b7 100755 --- a/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java +++ b/client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java @@ -564,7 +564,6 @@ private void connectWithAddresses(Request request, ProxyServer proxy, NettyR private Future> resolveAddresses(Request request, ProxyServer proxy, NettyResponseFuture future, AsyncHandler asyncHandler, boolean scheduleTimeout) { Uri uri = request.getUri(); - final Promise> promise = ImmediateEventExecutor.INSTANCE.newPromise(); if (proxy != null && !proxy.isIgnoredForHost(uri.getHost()) && proxy.getProxyType().isHttp()) { int port = ProxyType.HTTPS.equals(proxy.getProxyType()) || uri.isSecured() ? proxy.getSecuredPort() : proxy.getPort(); @@ -584,6 +583,7 @@ private Future> resolveAddresses(Request request, Pr if (request.getAddress() != null) { // bypass resolution InetSocketAddress inetSocketAddress = new InetSocketAddress(request.getAddress(), port); + Promise> promise = ImmediateEventExecutor.INSTANCE.newPromise(); return promise.setSuccess(singletonList(inetSocketAddress)); } return resolveHostname(request, unresolvedRemoteAddress, asyncHandler);