Skip to content

Commit 3b5e57a

Browse files
committed
Add URI to message of TimeoutException when timeout
1 parent 609476d commit 3b5e57a

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ public <T> void writeRequest(NettyResponseFuture<T> future, Channel channel) {
322322

323323
// don't bother scheduling timeouts if channel became invalid
324324
if (Channels.isChannelValid(channel))
325-
scheduleTimeouts(future);
325+
scheduleTimeouts(httpRequest, future);
326326

327327
} catch (Exception e) {
328328
LOGGER.error("Can't write request", e);
@@ -335,7 +335,7 @@ private void configureTransferAdapter(AsyncHandler<?> handler, HttpRequest httpR
335335
TransferCompletionHandler.class.cast(handler).headers(h);
336336
}
337337

338-
private void scheduleTimeouts(NettyResponseFuture<?> nettyResponseFuture) {
338+
private void scheduleTimeouts(HttpRequest httpRequest, NettyResponseFuture<?> nettyResponseFuture) {
339339

340340
nettyResponseFuture.touch();
341341
int requestTimeoutInMs = requestTimeout(config, nettyResponseFuture.getTargetRequest());
@@ -348,7 +348,7 @@ private void scheduleTimeouts(NettyResponseFuture<?> nettyResponseFuture) {
348348
int readTimeoutValue = config.getReadTimeout();
349349
if (readTimeoutValue != -1 && readTimeoutValue < requestTimeoutInMs) {
350350
// no need to schedule a readTimeout if the requestTimeout happens first
351-
Timeout readTimeout = newTimeout(new ReadTimeoutTimerTask(nettyResponseFuture, this, timeoutsHolder, requestTimeoutInMs, readTimeoutValue), readTimeoutValue);
351+
Timeout readTimeout = newTimeout(new ReadTimeoutTimerTask(nettyResponseFuture, this, timeoutsHolder, requestTimeoutInMs, readTimeoutValue, httpRequest), readTimeoutValue);
352352
timeoutsHolder.readTimeout = readTimeout;
353353
}
354354
nettyResponseFuture.setTimeoutsHolder(timeoutsHolder);

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
package org.asynchttpclient.netty.timeout;
1515

1616
import static org.asynchttpclient.util.DateUtils.millisTime;
17+
18+
import io.netty.handler.codec.http.HttpRequest;
1719
import io.netty.util.Timeout;
1820

1921
import org.asynchttpclient.netty.NettyResponseFuture;
@@ -23,15 +25,27 @@ public class ReadTimeoutTimerTask extends TimeoutTimerTask {
2325

2426
private final long readTimeout;
2527
private final long requestTimeoutInstant;
28+
private final HttpRequest httpRequest;
2629

2730
public ReadTimeoutTimerTask(//
2831
NettyResponseFuture<?> nettyResponseFuture,//
2932
NettyRequestSender requestSender,//
3033
TimeoutsHolder timeoutsHolder,//
3134
long requestTimeout,//
3235
long readTimeout) {
36+
this(nettyResponseFuture, requestSender, timeoutsHolder, requestTimeout, readTimeout, null);
37+
}
38+
39+
public ReadTimeoutTimerTask(//
40+
NettyResponseFuture<?> nettyResponseFuture,//
41+
NettyRequestSender requestSender,//
42+
TimeoutsHolder timeoutsHolder,//
43+
long requestTimeout,//
44+
long readTimeout,//
45+
HttpRequest httpRequest) {
3346
super(nettyResponseFuture, requestSender, timeoutsHolder);
3447
this.readTimeout = readTimeout;
48+
this.httpRequest = httpRequest;
3549
requestTimeoutInstant = requestTimeout >= 0 ? nettyResponseFuture.getStart() + requestTimeout : Long.MAX_VALUE;
3650
}
3751

@@ -52,7 +66,12 @@ public void run(Timeout timeout) throws Exception {
5266

5367
if (durationBeforeCurrentReadTimeout <= 0L) {
5468
// idleConnectTimeout reached
55-
String message = "Read timeout to " + remoteAddress + " of " + readTimeout + " ms";
69+
String message;
70+
if (httpRequest == null) {
71+
message = "Read timeout to " + remoteAddress + " of " + readTimeout + " ms";
72+
} else {
73+
message = "Read timeout to " + httpRequest.getUri() + " of " + readTimeout + " ms";
74+
}
5675
long durationSinceLastTouch = now - nettyResponseFuture.getLastTouch();
5776
expire(message, durationSinceLastTouch);
5877
// cancel request timeout sibling

0 commit comments

Comments
 (0)