Repository navigation
NPE in NettyConnectListener #2124
Copy link
Copy link
Closed
Description
Activity
Thanks for the report. I will have a look shortly.
Reacted by Dmytro Dumanskiy- added a commit that references this issue
on Nov 26, 2025 the published fix for this actually doesn't solve the original issue;
java.lang.NullPointerException: Cannot invoke "org.asynchttpclient.netty.timeout.TimeoutsHolder.setResolvedRemoteAddress(java.net.InetSocketAddress)" because "timeoutsHolder" is null
we need a null guard for the
timeoutsHoldervar, bcfuture.getTimeoutsHolder();can return null (i.e. ifcancelTimeouts()is called)i'm still seeing this error with ahc 3.0.9 (netty 4.2.9):
2026-05-07 11:16:30.692 [niohttp-chirp-2] WARN i.n.util.concurrent.DefaultPromise - An exception was thrown by org.asynchttpclient.netty.channel.NettyChannelConnector$1.operationComplete() java.lang.NullPointerException: Cannot invoke "org.asynchttpclient.netty.timeout.TimeoutsHolder.setResolvedRemoteAddress(java.net.InetSocketAddress)" because "timeoutsHolder" is null at org.asynchttpclient.netty.channel.NettyConnectListener.onSuccess(NettyConnectListener.java:102) at org.asynchttpclient.netty.channel.NettyChannelConnector$1.onSuccess(NettyChannelConnector.java:91) at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:28) at org.asynchttpclient.netty.SimpleChannelFutureListener.operationComplete(SimpleChannelFutureListener.java:22) at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:604) at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:597) at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:573) at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:506) at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:650) at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:639) at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:119) at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.fulfillConnectPromise(AbstractNioChannel.java:350) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:385) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:432) at io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388) at io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596) at io.netty.channel.nio.NioIoHandler.processSelectedKeysPlain(NioIoHandler.java:541) at io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:514) at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484) at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225) at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196) at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.lang.Thread.run(Thread.java:1474)
Metadata
Metadata
Assignees
Labels
No labels
Async client version - 3.0.3
Netty version - 4.2.7.Final
Java 21/25
And for another env: