Skip to content

Commit ead7af3

Browse files
authored
Merge pull request #3190 from aws/zoewang/fixNPEInBatchWriteResult
Fix NPE in BatchWriteResult
2 parents 1a2529a + 8a0e5ce commit ead7af3

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/model/BatchWriteResult.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
import static software.amazon.awssdk.enhanced.dynamodb.internal.EnhancedClientUtils.createKeyFromMap;
1919
import static software.amazon.awssdk.enhanced.dynamodb.internal.EnhancedClientUtils.readAndTransformSingleItem;
2020

21+
import java.util.ArrayList;
2122
import java.util.Collections;
23+
import java.util.HashMap;
2224
import java.util.List;
2325
import java.util.Map;
2426
import java.util.Objects;
@@ -56,9 +58,14 @@ public final class BatchWriteResult {
5658
private final Map<String, List<ItemCollectionMetrics>> itemCollectionMetrics;
5759

5860
private BatchWriteResult(Builder builder) {
59-
this.unprocessedRequests = Collections.unmodifiableMap(builder.unprocessedRequests);
60-
this.consumedCapacity = Collections.unmodifiableList(builder.consumedCapacity);
61-
this.itemCollectionMetrics = builder.itemCollectionMetrics;
61+
this.unprocessedRequests = builder.unprocessedRequests == null ?
62+
Collections.unmodifiableMap(new HashMap<>()) :
63+
Collections.unmodifiableMap(builder.unprocessedRequests);
64+
this.consumedCapacity = builder.consumedCapacity == null ? Collections.unmodifiableList(new ArrayList<>()) :
65+
Collections.unmodifiableList(builder.consumedCapacity);
66+
this.itemCollectionMetrics =
67+
builder.itemCollectionMetrics == null ? Collections.unmodifiableMap(new HashMap<>()) :
68+
Collections.unmodifiableMap(builder.itemCollectionMetrics);
6269
}
6370

6471
/**

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/model/BatchWriteResultTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ public void setupMappedTables() {
6161
@Test
6262
public void builder_minimal() {
6363
BatchWriteResult builtObject =
64-
BatchWriteResult.builder().unprocessedRequests(Collections.EMPTY_MAP).consumedCapacity(ImmutableList.of()).build();
64+
BatchWriteResult.builder().unprocessedRequests(Collections.EMPTY_MAP).build();
6565

66-
Assertions.assertThat(builtObject.itemCollectionMetrics()).isNull();
66+
Assertions.assertThat(builtObject.itemCollectionMetrics()).isEmpty();
6767
Assertions.assertThat(builtObject.consumedCapacity()).isEmpty();
6868
}
6969

0 commit comments

Comments
 (0)