diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java index 4ce393a90821..f743c0f3bc3c 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/S3CrtResponseHandlerAdapter.java @@ -69,6 +69,7 @@ public int onResponseBody(ByteBuffer bodyBytesIn, long objectRangeStart, long ob return 0; } + int bytesReceived = bodyBytesIn.remaining(); CompletableFuture writeFuture = responsePublisher.send(bodyBytesIn); writeFuture.whenComplete((result, failure) -> { @@ -77,7 +78,7 @@ public int onResponseBody(ByteBuffer bodyBytesIn, long objectRangeStart, long ob return; } - metaRequest.incrementReadWindow(bodyBytesIn.remaining()); + metaRequest.incrementReadWindow(bytesReceived); }); // Returning 0 to disable flow control because we manually increase read window above