Skip to content

Commit d16039c

Browse files
committed
Init TimeoutsHolder remoteAddress from NettyChannelConnector
1 parent 2f97d65 commit d16039c

File tree

3 files changed

+12
-17
lines changed

3 files changed

+12
-17
lines changed

client/src/main/java/org/asynchttpclient/netty/request/NettyChannelConnector.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,21 @@
2525
import org.asynchttpclient.handler.AsyncHandlerExtensions;
2626
import org.asynchttpclient.netty.SimpleChannelFutureListener;
2727
import org.asynchttpclient.netty.channel.NettyConnectListener;
28+
import org.asynchttpclient.netty.timeout.TimeoutsHolder;
2829

2930
public class NettyChannelConnector {
3031

3132
private final AsyncHandlerExtensions asyncHandlerExtensions;
3233
private final InetSocketAddress localAddress;
3334
private final List<InetSocketAddress> remoteAddresses;
35+
private final TimeoutsHolder timeoutsHolder;
3436
private volatile int i = 0;
3537

36-
public NettyChannelConnector(InetAddress localAddress, List<InetSocketAddress> remoteAddresses, AsyncHandler<?> asyncHandler) {
38+
public NettyChannelConnector(InetAddress localAddress, List<InetSocketAddress> remoteAddresses, AsyncHandler<?> asyncHandler, TimeoutsHolder timeoutsHolder) {
3739
this.localAddress = localAddress != null ? new InetSocketAddress(localAddress, 0) : null;
3840
this.remoteAddresses = remoteAddresses;
3941
this.asyncHandlerExtensions = toAsyncHandlerExtensions(asyncHandler);
42+
this.timeoutsHolder = timeoutsHolder;
4043
}
4144

4245
private boolean pickNextRemoteAddress() {
@@ -46,7 +49,7 @@ private boolean pickNextRemoteAddress() {
4649

4750
public void connect(final Bootstrap bootstrap, final NettyConnectListener<?> connectListener) {
4851
final InetSocketAddress remoteAddress = remoteAddresses.get(i);
49-
52+
5053
if (asyncHandlerExtensions != null)
5154
asyncHandlerExtensions.onTcpConnectAttempt(remoteAddress);
5255

@@ -56,9 +59,10 @@ public void connect(final Bootstrap bootstrap, final NettyConnectListener<?> con
5659

5760
@Override
5861
public void onSuccess(Channel channel) throws Exception {
59-
if (asyncHandlerExtensions != null)
62+
if (asyncHandlerExtensions != null) {
6063
asyncHandlerExtensions.onTcpConnectSuccess(remoteAddress, future.channel());
61-
64+
}
65+
timeoutsHolder.initRemoteAddress(remoteAddress);
6266
connectListener.onSuccess(channel);
6367
}
6468

client/src/main/java/org/asynchttpclient/netty/request/NettyRequestSender.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ private <T> ListenableFuture<T> sendRequestWithNewChannel(//
277277
@Override
278278
protected void onSuccess(List<InetSocketAddress> addresses) {
279279
NettyConnectListener<T> connectListener = new NettyConnectListener<>(future, NettyRequestSender.this, channelManager, channelPreempted, partitionKey);
280-
new NettyChannelConnector(request.getLocalAddress(), addresses, asyncHandler).connect(bootstrap, connectListener);
280+
new NettyChannelConnector(request.getLocalAddress(), addresses, asyncHandler, future.getTimeoutsHolder()).connect(bootstrap, connectListener);
281281
}
282282

283283
@Override

client/src/main/java/org/asynchttpclient/netty/timeout/TimeoutsHolder.java

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@
1414
package org.asynchttpclient.netty.timeout;
1515

1616
import static org.asynchttpclient.util.DateUtils.millisTime;
17-
import io.netty.channel.Channel;
1817
import io.netty.util.Timeout;
1918
import io.netty.util.Timer;
2019
import io.netty.util.TimerTask;
2120

22-
import java.net.SocketAddress;
21+
import java.net.InetSocketAddress;
2322
import java.util.concurrent.TimeUnit;
2423
import java.util.concurrent.atomic.AtomicBoolean;
2524

@@ -61,19 +60,11 @@ public TimeoutsHolder(Timer nettyTimer, NettyResponseFuture<?> nettyResponseFutu
6160
}
6261
}
6362

64-
private void initRemoteAddress() {
65-
Channel channel = nettyResponseFuture.channel();
66-
if (channel != null) {
67-
SocketAddress sa = channel.remoteAddress();
68-
if (sa != null) {
69-
remoteAddress = sa.toString();
70-
}
71-
}
63+
public void initRemoteAddress(InetSocketAddress address) {
64+
remoteAddress = address.toString();
7265
}
7366

7467
public void startReadTimeout() {
75-
// we should be connected now
76-
initRemoteAddress();
7768
if (readTimeoutValue != -1) {
7869
startReadTimeout(null);
7970
}

0 commit comments

Comments
 (0)