Skip to content

Commit bd4f8ac

Browse files
authored
Fixed an issue where sdkRepsonse is not present in the ProgressSnapshot for upload and copy (#3585)
1 parent 532a185 commit bd4f8ac

File tree

7 files changed

+18
-0
lines changed

7 files changed

+18
-0
lines changed

services-custom/s3-transfer-manager/src/it/java/software/amazon/awssdk/transfer/s3/S3TransferManagerUploadIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ void upload_file_SentCorrectly() throws IOException {
8282
.isEqualTo(ChecksumUtils.computeCheckSum(obj));
8383
assertThat(obj.response().responseMetadata().requestId()).isNotNull();
8484
assertThat(obj.response().metadata()).containsEntry("foobar", "FOO BAR");
85+
assertThat(fileUpload.progress().snapshot().sdkResponse()).isPresent();
8586
}
8687

8788
@Test
@@ -105,5 +106,6 @@ void upload_asyncRequestBody_SentCorrectly() throws IOException {
105106
assertThat(ChecksumUtils.computeCheckSum(content.getBytes(StandardCharsets.UTF_8)))
106107
.isEqualTo(ChecksumUtils.computeCheckSum(obj));
107108
assertThat(obj.response().responseMetadata().requestId()).isNotNull();
109+
assertThat(upload.progress().snapshot().sdkResponse()).isPresent();
108110
}
109111
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/internal/progress/TransferProgressUpdater.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,10 @@ public void registerCompletion(CompletableFuture<? extends CompletedObjectTransf
164164
private void transferComplete(CompletedObjectTransfer r) {
165165
listenerInvoker.transferComplete(context.copy(b -> {
166166
TransferProgressSnapshot snapshot = progress.snapshot();
167+
if (!snapshot.sdkResponse().isPresent()) {
168+
snapshot = progress.updateAndGet(p -> p.sdkResponse(r.response()));
169+
}
170+
167171
b.progressSnapshot(snapshot);
168172
b.completedTransfer(r);
169173
}));

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/CompletedCopy.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ private CompletedCopy(DefaultBuilder builder) {
3838
this.response = Validate.paramNotNull(builder.response, "response");
3939
}
4040

41+
@Override
4142
public CopyObjectResponse response() {
4243
return response;
4344
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/CompletedFileDownload.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ private CompletedFileDownload(DefaultBuilder builder) {
3939
this.response = Validate.paramNotNull(builder.response, "response");
4040
}
4141

42+
@Override
4243
public GetObjectResponse response() {
4344
return response;
4445
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/CompletedFileUpload.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ private CompletedFileUpload(DefaultBuilder builder) {
3939
this.response = Validate.paramNotNull(builder.response, "response");
4040
}
4141

42+
@Override
4243
public PutObjectResponse response() {
4344
return response;
4445
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/CompletedObjectTransfer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import software.amazon.awssdk.annotations.SdkPreviewApi;
1919
import software.amazon.awssdk.annotations.SdkPublicApi;
20+
import software.amazon.awssdk.core.SdkResponse;
2021

2122
/**
2223
* A completed single object transfer.
@@ -29,4 +30,11 @@
2930
@SdkPublicApi
3031
@SdkPreviewApi
3132
public interface CompletedObjectTransfer extends CompletedTransfer {
33+
34+
/**
35+
* Return the {@link SdkResponse} associated with this transfer
36+
*/
37+
default SdkResponse response() {
38+
throw new UnsupportedOperationException();
39+
}
3240
}

services-custom/s3-transfer-manager/src/main/java/software/amazon/awssdk/transfer/s3/model/CompletedUpload.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ private CompletedUpload(DefaultBuilder builder) {
3939
this.response = Validate.paramNotNull(builder.response, "response");
4040
}
4141

42+
@Override
4243
public PutObjectResponse response() {
4344
return response;
4445
}

0 commit comments

Comments
 (0)