Skip to content

Commit f3d3773

Browse files
committed
use firstMatchingHeader() instead of headers() in FileAsyncResponseTransformerPublisher to prevent copying all headers
1 parent 8506c43 commit f3d3773

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/async/FileAsyncResponseTransformerPublisher.java

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

1818
import java.nio.ByteBuffer;
1919
import java.nio.file.Path;
20-
import java.util.List;
2120
import java.util.Optional;
2221
import java.util.concurrent.CompletableFuture;
2322
import java.util.concurrent.atomic.AtomicBoolean;
@@ -28,12 +27,10 @@
2827
import software.amazon.awssdk.core.SdkResponse;
2928
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
3029
import software.amazon.awssdk.core.async.SdkPublisher;
31-
import software.amazon.awssdk.utils.CollectionUtils;
3230
import software.amazon.awssdk.utils.CompletableFutureUtils;
3331
import software.amazon.awssdk.utils.ContentRangeParser;
3432
import software.amazon.awssdk.utils.Logger;
3533
import software.amazon.awssdk.utils.Pair;
36-
import software.amazon.awssdk.utils.StringUtils;
3734
import software.amazon.awssdk.utils.Validate;
3835

3936
/**
@@ -107,15 +104,15 @@ public CompletableFuture<T> prepare() {
107104

108105
@Override
109106
public void onResponse(T response) {
110-
List<String> contentRangeList = response.sdkHttpResponse().headers().get("x-amz-content-range");
111-
if (CollectionUtils.isNullOrEmpty(contentRangeList) || StringUtils.isEmpty(contentRangeList.get(0))) {
107+
Optional<String> contentRangeList = response.sdkHttpResponse().firstMatchingHeader("x-amz-content-range");
108+
if (!contentRangeList.isPresent()) {
112109
if (subscriber != null) {
113110
subscriber.onError(new IllegalStateException("Content range header is missing"));
114111
}
115112
return;
116113
}
117114

118-
String contentRange = contentRangeList.get(0);
115+
String contentRange = contentRangeList.get();
119116
Optional<Pair<Long, Long>> contentRangePair = ContentRangeParser.range(contentRange);
120117
if (!contentRangePair.isPresent()) {
121118
if (subscriber != null) {

0 commit comments

Comments
 (0)