Repository: jclouds
Updated Branches:
  refs/heads/master 0b89b1fd1 -> a1049449f


Reset xattr on overwrite in filesystem provider


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/a1049449
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/a1049449
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/a1049449

Branch: refs/heads/master
Commit: a1049449f421c29e6dbe68499fdc7bead7cdf65a
Parents: 0b89b1f
Author: Andrew Gaul <[email protected]>
Authored: Sun Aug 31 13:04:32 2014 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Thu Sep 4 17:22:26 2014 -0700

----------------------------------------------------------------------
 .../internal/FilesystemStorageStrategyImpl.java |  1 +
 .../FilesystemStorageStrategyImplTest.java      | 33 ++++++++++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1049449/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
----------------------------------------------------------------------
diff --git 
a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
 
b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
index ea975e8..04b3172 100644
--- 
a/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
+++ 
b/apis/filesystem/src/main/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImpl.java
@@ -276,6 +276,7 @@ public class FilesystemStorageStrategyImpl implements 
LocalStorageStrategy {
       try {
          Files.createParentDirs(outputFile);
          his = new HashingInputStream(Hashing.md5(), payload.openStream());
+         outputFile.delete();
          Files.asByteSink(outputFile).writeFrom(his);
          HashCode actualHashCode = his.hash();
          HashCode expectedHashCode = 
payload.getContentMetadata().getContentMD5AsHashCode();

http://git-wip-us.apache.org/repos/asf/jclouds/blob/a1049449/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java
----------------------------------------------------------------------
diff --git 
a/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java
 
b/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java
index aaa4b78..c24458e 100644
--- 
a/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java
+++ 
b/apis/filesystem/src/test/java/org/jclouds/filesystem/strategy/internal/FilesystemStorageStrategyImplTest.java
@@ -16,6 +16,8 @@
  */
 package org.jclouds.filesystem.strategy.internal;
 
+import static org.jclouds.utils.TestUtils.isMacOSX;
+import static org.jclouds.utils.TestUtils.randomByteSource;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
@@ -43,8 +45,10 @@ import org.jclouds.io.payloads.InputStreamPayload;
 import org.jclouds.util.Throwables2;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
+import org.testng.SkipException;
 import org.testng.annotations.Test;
 
+import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.io.ByteSource;
@@ -526,6 +530,35 @@ public class FilesystemStorageStrategyImplTest {
       }
    }
 
+   public void testOverwriteBlobMetadata() throws Exception {
+      if (isMacOSX()) {
+         throw new SkipException("blob metadata not supported on Mac OS X");
+      }
+      String blobKey = TestUtils.createRandomBlobKey("writePayload-", ".img");
+
+      // write blob
+      Blob blob = new BlobBuilderImpl()
+            .name(blobKey)
+            .payload(randomByteSource().slice(0, 1024))
+            .userMetadata(ImmutableMap.of("key1", "value1"))
+            .build();
+      storageStrategy.putBlob(CONTAINER_NAME, blob);
+
+      blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey);
+      assertEquals(blob.getMetadata().getUserMetadata().get("key1"), "value1");
+
+      // overwrite blob
+      blob = new BlobBuilderImpl()
+            .name(blobKey)
+            .payload(randomByteSource().slice(0, 1024))
+            // no metadata
+            .build();
+      storageStrategy.putBlob(CONTAINER_NAME, blob);
+
+      blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey);
+      assertFalse(blob.getMetadata().getUserMetadata().containsKey("key1"));
+   }
+
    // ---------------------------------------------------------- Private 
methods
 
    /**

Reply via email to