From df3e1ed9ab54b54089add0cd4decb3f8dbb6dcca Mon Sep 17 00:00:00 2001 From: Dhriti Chopra Date: Thu, 9 Jul 2026 09:14:34 +0000 Subject: [PATCH] fix(storage): correctly insert explicit nulls for json patch updates --- .../java/com/google/cloud/storage/StorageImpl.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/java-storage/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageImpl.java b/java-storage/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageImpl.java index 8a510b84e7cc..7060db7e4719 100644 --- a/java-storage/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageImpl.java +++ b/java-storage/google-cloud-storage/src/main/java/com/google/cloud/storage/StorageImpl.java @@ -492,8 +492,9 @@ public Bucket update(BucketInfo bucketInfo, BucketTargetOption... options) { .forEach( field -> { String jsonName = field.getApiaryName(); - if (tmp.containsKey(jsonName)) { - bucketPb.put(jsonName, tmp.get(jsonName)); + Object value = tmp.get(jsonName); + if (value != null) { + bucketPb.put(jsonName, value); } else { BucketField lookup = BucketField.lookup(field); if (lookup != null) { @@ -577,8 +578,9 @@ public Blob update(BlobInfo blobInfo, BlobTargetOption... options) { } else { checkState(subFields.size() <= 1, "unexpected nested field(s) %s", subFields); String jsonName = topLevelField.getApiaryName(); - if (tmp.containsKey(jsonName)) { - pb.put(jsonName, tmp.get(jsonName)); + Object value = tmp.get(jsonName); + if (value != null) { + pb.put(jsonName, value); } else { BlobField lookup = BlobField.lookup(topLevelField); if (lookup != null) {