Skip to content

Commit 83d7609

Browse files
committed
Wrap ReadTimeoutException and WriteTimeoutException in ResponseHanlder and update logging level
1 parent 2fba0cf commit 83d7609

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/NettyRequestExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ private URI endpoint() {
191191
}
192192

193193
private void handleFailure(Supplier<String> msg, Throwable cause) {
194-
log.error(msg.get(), cause);
194+
log.debug(msg.get(), cause);
195195
cause = decorateException(cause);
196196
context.handler().onError(cause);
197197
executeFuture.completeExceptionally(cause);

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/ResponseHandler.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
import io.netty.handler.codec.http.HttpResponse;
3535
import io.netty.handler.codec.http.HttpUtil;
3636
import io.netty.handler.codec.http.LastHttpContent;
37+
import io.netty.handler.timeout.ReadTimeoutException;
38+
import io.netty.handler.timeout.WriteTimeoutException;
3739
import io.netty.util.AttributeKey;
3840
import java.io.IOException;
3941
import java.nio.ByteBuffer;
@@ -115,9 +117,10 @@ private static void finalizeRequest(RequestContext requestContext, ChannelHandle
115117
@Override
116118
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
117119
RequestContext requestContext = ctx.channel().attr(REQUEST_CONTEXT_KEY).get();
118-
log.error("Exception processing request: {}", requestContext.executeRequest().request(), cause);
119-
requestContext.handler().onError(cause);
120-
executeFuture(ctx).completeExceptionally(cause);
120+
log.debug("Exception processing request: {}", requestContext.executeRequest().request(), cause);
121+
Throwable throwable = wrapException(cause);
122+
requestContext.handler().onError(throwable);
123+
executeFuture(ctx).completeExceptionally(throwable);
121124
runAndLogError("Could not release channel back to the pool", () -> closeAndRelease(ctx));
122125
}
123126

@@ -355,4 +358,14 @@ protected void channelRead0(ChannelHandlerContext ctx, HttpObject obj) throws Ex
355358
ctx.pipeline().remove(this);
356359
}
357360
}
361+
362+
private Throwable wrapException(Throwable originalCause) {
363+
if (originalCause instanceof ReadTimeoutException) {
364+
return new IOException("Read timed out", originalCause);
365+
} else if (originalCause instanceof WriteTimeoutException) {
366+
return new IOException("Write timed out", originalCause);
367+
}
368+
369+
return originalCause;
370+
}
358371
}

0 commit comments

Comments
 (0)