diff --git a/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java b/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java index 55d0b52b..f738b52e 100644 --- a/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java +++ b/google-cloud-nio/src/main/java/com/google/cloud/storage/contrib/nio/testing/FakeStorageRpc.java @@ -338,6 +338,17 @@ public String open(String signedURL) { public void write( String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, boolean last) throws StorageException { + writeWithResponse(uploadId, toWrite, toWriteOffset, destOffset, length, last); + } + + @Override + public StorageObject writeWithResponse( + String uploadId, + byte[] toWrite, + int toWriteOffset, + long destOffset, + int length, + boolean last) { // this may have a lot more allocations than ideal, but it'll work. byte[] bytes; if (futureContents.containsKey(uploadId)) { @@ -352,11 +363,12 @@ public void write( } System.arraycopy(toWrite, toWriteOffset, bytes, (int) destOffset, length); // we want to mimic the GCS behavior that file contents are only visible on close. + StorageObject storageObject = null; if (last) { contents.put(uploadId, bytes); futureContents.remove(uploadId); if (metadata.containsKey(uploadId)) { - StorageObject storageObject = metadata.get(uploadId); + storageObject = metadata.get(uploadId); Long generation = storageObject.getGeneration(); if (null == generation) { generation = Long.valueOf(0); @@ -367,6 +379,7 @@ public void write( } else { futureContents.put(uploadId, bytes); } + return storageObject; } @Override diff --git a/pom.xml b/pom.xml index 14007055..bc01af06 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,7 @@ com.google.cloud google-cloud-storage - 1.110.0 + 1.111.1 com.google.apis