From 0cba76c6f4216040544362c3ec262ad76f8899cc Mon Sep 17 00:00:00 2001 From: Zoe Wang <33073555+zoewangg@users.noreply.github.com> Date: Wed, 19 Jul 2023 15:49:09 -0700 Subject: [PATCH 1/2] Handle null response metadata --- .../awssdk/awscore/AwsResponseMetadata.java | 3 ++- .../multipart/SdkPojoConversionUtils.java | 19 ++++--------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsResponseMetadata.java b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsResponseMetadata.java index f9e326f62317..2bbdec695da8 100644 --- a/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsResponseMetadata.java +++ b/core/aws-core/src/main/java/software/amazon/awssdk/awscore/AwsResponseMetadata.java @@ -18,6 +18,7 @@ import static software.amazon.awssdk.awscore.util.AwsHeader.AWS_REQUEST_ID; import java.util.Collections; +import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -48,7 +49,7 @@ protected AwsResponseMetadata(Map metadata) { } protected AwsResponseMetadata(AwsResponseMetadata responseMetadata) { - this(responseMetadata.metadata); + this(responseMetadata == null ? new HashMap<>() : responseMetadata.metadata); } /** diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java index a99c16670d17..25fde18cadaf 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/multipart/SdkPojoConversionUtils.java @@ -131,13 +131,8 @@ public static CopyObjectResponse toCopyObjectResponse(CompleteMultipartUploadRes setSdkFields(builder, response); - if (response.responseMetadata() != null) { - builder.responseMetadata(response.responseMetadata()); - } - - if (response.sdkHttpResponse() != null) { - builder.sdkHttpResponse(response.sdkHttpResponse()); - } + builder.responseMetadata(response.responseMetadata()); + builder.sdkHttpResponse(response.sdkHttpResponse()); return builder.copyObjectResult(toCopyObjectResult(response)) .build(); @@ -184,14 +179,8 @@ public static PutObjectResponse toPutObjectResponse(CompleteMultipartUploadRespo setSdkFields(builder, response); - // TODO: check why we have to do null check - if (response.responseMetadata() != null) { - builder.responseMetadata(response.responseMetadata()); - } - - if (response.sdkHttpResponse() != null) { - builder.sdkHttpResponse(response.sdkHttpResponse()); - } + builder.responseMetadata(response.responseMetadata()); + builder.sdkHttpResponse(response.sdkHttpResponse()); return builder.build(); } From dc6e7885ee697e2ed643f14f69f5d27f2e5433a2 Mon Sep 17 00:00:00 2001 From: Zoe Wang <33073555+zoewangg@users.noreply.github.com> Date: Thu, 20 Jul 2023 16:44:35 -0700 Subject: [PATCH 2/2] Fix build --- .../awssdk/services/s3/crt/S3CrossRegionCrtIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crt/S3CrossRegionCrtIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crt/S3CrossRegionCrtIntegrationTest.java index 953c6e4b4f4b..72c6fce095ce 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/crt/S3CrossRegionCrtIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/crt/S3CrossRegionCrtIntegrationTest.java @@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static software.amazon.awssdk.services.s3.crt.S3CrtClientCopyIntegrationTest.randomBytes; +import static software.amazon.awssdk.services.s3.multipart.S3ClientMultiPartCopyIntegrationTest.randomBytes; import static software.amazon.awssdk.services.s3.utils.ChecksumUtils.computeCheckSum; import static software.amazon.awssdk.testutils.service.S3BucketUtils.temporaryBucketName;