You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2016/05/08 05:00:21 UTC

jclouds git commit: Handle missing containers in LocalBlobStore.list

Repository: jclouds
Updated Branches:
  refs/heads/master a4c40e15c -> 62410d31a


Handle missing containers in LocalBlobStore.list

Also fix FilesystemStorageStrategyImpl.getContainerMetadata to return
null on missing container as jdbc and transient already do.


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

Branch: refs/heads/master
Commit: 62410d31aec1af1bbea4ec1b0483154ad26dc4b4
Parents: a4c40e1
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri May 6 21:22:44 2016 -0700
Committer: Andrew Gaul <ga...@apache.org>
Committed: Fri May 6 21:36:28 2016 -0700

----------------------------------------------------------------------
 .../internal/FilesystemStorageStrategyImpl.java         |  3 +++
 .../org/jclouds/blobstore/LocalStorageStrategy.java     |  2 +-
 .../org/jclouds/blobstore/config/LocalBlobStore.java    | 12 +++++++++---
 3 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/62410d31/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 127f5f2..ff16954 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
@@ -35,6 +35,7 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.nio.file.attribute.PosixFilePermission;
@@ -269,6 +270,8 @@ public class FilesystemStorageStrategyImpl implements LocalStorageStrategy {
       BasicFileAttributes attr;
       try {
          attr = readAttributes(path, BasicFileAttributes.class);
+      } catch (NoSuchFileException nsfe) {
+         return null;
       } catch (IOException e) {
          throw Throwables.propagate(e);
       }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/62410d31/blobstore/src/main/java/org/jclouds/blobstore/LocalStorageStrategy.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/LocalStorageStrategy.java b/blobstore/src/main/java/org/jclouds/blobstore/LocalStorageStrategy.java
index 597e0b7..1498ee1 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/LocalStorageStrategy.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/LocalStorageStrategy.java
@@ -81,7 +81,7 @@ public interface LocalStorageStrategy {
      */
     void clearContainer(String container, ListContainerOptions options);
 
-    /** @return StorageMetadata associated with a container name, e.g., creation date and location */
+    /** @return StorageMetadata associated with a container name, e.g., creation date and location, or null if container does not exist */
     StorageMetadata getContainerMetadata(String container);
 
     /**

http://git-wip-us.apache.org/repos/asf/jclouds/blob/62410d31/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
----------------------------------------------------------------------
diff --git a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
index f1a4938..f48e2da 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
@@ -88,8 +88,10 @@ import org.jclouds.util.Closeables2;
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.base.Supplier;
 import com.google.common.base.Throwables;
+import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Iterators;
@@ -429,12 +431,16 @@ public final class LocalBlobStore implements BlobStore {
       ArrayList<String> containers = new ArrayList<String>(storageStrategy.getAllContainerNames());
       Collections.sort(containers);
 
-      return new PageSetImpl<StorageMetadata>(transform(
-            containers, new Function<String, StorageMetadata>() {
+      return new PageSetImpl<StorageMetadata>(FluentIterable
+            .from(containers)
+            .transform(new Function<String, StorageMetadata>() {
+               @Override
                public StorageMetadata apply(String name) {
                   return storageStrategy.getContainerMetadata(name);
                }
-            }), null);
+            })
+            .filter(Predicates.<StorageMetadata>notNull()),
+            null);
    }
 
    @Override