From 8de7b696e13f7131b3ea4a77b10f5cfd139dd712 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sun, 12 Jul 2020 04:53:37 +0900 Subject: [PATCH] Store transient Blob data with ByteArrayPayload This avoids a race condition due to sharing the same Closer instance and unbounded growth of its Closeable Deque. References gaul/s3proxy#303. --- .../java/org/jclouds/blobstore/TransientStorageStrategy.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blobstore/src/main/java/org/jclouds/blobstore/TransientStorageStrategy.java b/blobstore/src/main/java/org/jclouds/blobstore/TransientStorageStrategy.java index 3053aa40361..66e15834c72 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/TransientStorageStrategy.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/TransientStorageStrategy.java @@ -55,7 +55,6 @@ import com.google.common.hash.HashCode; import com.google.common.hash.Hashing; import com.google.common.hash.HashingInputStream; -import com.google.common.io.ByteSource; import com.google.common.io.ByteStreams; import com.google.common.net.HttpHeaders; @@ -239,7 +238,7 @@ private Blob createUpdatedCopyOfBlobInContainer(String containerName, Blob in, b checkNotNull(in, "blob"); checkNotNull(input, "input"); checkNotNull(contentMd5, "contentMd5"); - Payload payload = Payloads.newByteSourcePayload(ByteSource.wrap(input)); + Payload payload = Payloads.newByteArrayPayload(input); MutableContentMetadata oldMd = in.getPayload().getContentMetadata(); HttpUtils.copy(oldMd, payload.getContentMetadata()); payload.getContentMetadata().setContentMD5(contentMd5);