From 9ed9d1389e92766b66e2b8b4fb78b44d96d98803 Mon Sep 17 00:00:00 2001 From: Frank Natividad Date: Mon, 8 Mar 2021 12:30:27 -0800 Subject: [PATCH] fix: npe in createFrom (#746) * fix: npe in create-from * address NPE issue * revert test it * address unit tests --- .../java/com/google/cloud/storage/BlobWriteChannel.java | 5 ++++- .../com/google/cloud/storage/BlobWriteChannelTest.java | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobWriteChannel.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobWriteChannel.java index aa5c3a8118..09bc17081a 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobWriteChannel.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobWriteChannel.java @@ -25,6 +25,7 @@ import com.google.cloud.RetryHelper; import com.google.cloud.WriteChannel; import com.google.cloud.storage.spi.v1.StorageRpc; +import com.google.common.collect.Maps; import java.net.URL; import java.util.Map; import java.util.concurrent.Callable; @@ -77,7 +78,9 @@ private long getRemotePosition() { } private StorageObject getRemoteStorageObject() { - return getOptions().getStorageRpcV1().get(getEntity().toPb(), null); + return getOptions() + .getStorageRpcV1() + .get(getEntity().toPb(), Maps.newEnumMap(StorageRpc.Option.class)); } private StorageException unrecoverableState( diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobWriteChannelTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobWriteChannelTest.java index ba60a3c4d6..d74e87d640 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobWriteChannelTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/BlobWriteChannelTest.java @@ -40,6 +40,7 @@ import com.google.cloud.storage.spi.StorageRpcFactory; import com.google.cloud.storage.spi.v1.StorageRpc; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; import java.io.IOException; import java.math.BigInteger; import java.net.MalformedURLException; @@ -333,9 +334,10 @@ public void testWriteWithRetryAndObjectMetadata() throws IOException { .andThrow(socketClosedException); expect(storageRpcMock.getCurrentUploadOffset(eq(UPLOAD_ID))).andReturn(-1L); expect(storageRpcMock.getCurrentUploadOffset(eq(UPLOAD_ID))).andReturn(-1L); - expect(storageRpcMock.get(BLOB_INFO.toPb(), null)).andThrow(socketClosedException); + expect(storageRpcMock.get(BLOB_INFO.toPb(), Maps.newEnumMap(StorageRpc.Option.class))) + .andThrow(socketClosedException); expect(storageRpcMock.getCurrentUploadOffset(eq(UPLOAD_ID))).andReturn(-1L); - expect(storageRpcMock.get(BLOB_INFO.toPb(), null)) + expect(storageRpcMock.get(BLOB_INFO.toPb(), Maps.newEnumMap(StorageRpc.Option.class))) .andReturn(BLOB_INFO.toPb().setSize(BigInteger.valueOf(MIN_CHUNK_SIZE))); replay(storageRpcMock); writer = new BlobWriteChannel(options, BLOB_INFO, EMPTY_RPC_OPTIONS); @@ -485,7 +487,7 @@ public void testWriteWithLastFlushRetryChunkButCompleted() throws IOException { eq(true))) .andThrow(socketClosedException); expect(storageRpcMock.getCurrentUploadOffset(eq(UPLOAD_ID))).andReturn(-1L); - expect(storageRpcMock.get(BLOB_INFO.toPb(), null)) + expect(storageRpcMock.get(BLOB_INFO.toPb(), Maps.newEnumMap(StorageRpc.Option.class))) .andReturn(BLOB_INFO.toPb().setSize(BigInteger.valueOf(MIN_CHUNK_SIZE))); replay(storageRpcMock); writer = new BlobWriteChannel(options, BLOB_INFO, EMPTY_RPC_OPTIONS);