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