From 48c04eca6ab48b7fad7da9a6c6714538d56f8b81 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Mon, 18 Nov 2024 10:37:36 -0800 Subject: [PATCH] Handle non-existent blob in UserMetadataReplacer Fixes #720. --- .../org/gaul/s3proxy/UserMetadataReplacerBlobStore.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/org/gaul/s3proxy/UserMetadataReplacerBlobStore.java b/src/main/java/org/gaul/s3proxy/UserMetadataReplacerBlobStore.java index 21e6086..56ad737 100644 --- a/src/main/java/org/gaul/s3proxy/UserMetadataReplacerBlobStore.java +++ b/src/main/java/org/gaul/s3proxy/UserMetadataReplacerBlobStore.java @@ -73,6 +73,10 @@ final class UserMetadataReplacerBlobStore extends ForwardingBlobStore { @Override public BlobMetadata blobMetadata(String container, String name) { var blobMetadata = super.blobMetadata(container, name); + if (blobMetadata == null) { + return null; + } + var metadata = ImmutableMap.builder(); // TODO: duplication for (var entry : blobMetadata.getUserMetadata().entrySet()) { @@ -92,6 +96,10 @@ final class UserMetadataReplacerBlobStore extends ForwardingBlobStore { public Blob getBlob(String containerName, String name, GetOptions getOptions) { var blob = super.getBlob(containerName, name, getOptions); + if (blob == null) { + return null; + } + var metadata = ImmutableMap.builder(); for (var entry : blob.getMetadata().getUserMetadata().entrySet()) { metadata.put(replaceChars(entry.getKey(), toChars, fromChars),