From be7b9f4cc4e42f1f2e54b7364289839f1b5c64c7 Mon Sep 17 00:00:00 2001 From: Ka-Hing Cheung Date: Fri, 20 Feb 2015 19:11:03 -0800 Subject: [PATCH] fix non-recursive list with empty prefix --- .../filesystem/FilesystemBlobStoreTest.java | 15 +++++++++++++++ .../jclouds/blobstore/config/LocalBlobStore.java | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java b/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java index a5cff2191f..8b9849b3fc 100644 --- a/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java +++ b/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java @@ -174,6 +174,21 @@ public class FilesystemBlobStoreTest { checkForContainerContent(CONTAINER_NAME, blobsExpected); } + @Test + public void testList_RootNonRecursive() throws IOException { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + // Testing list for an empty container + checkForContainerContent(CONTAINER_NAME, null); + + TestUtils.createBlobsInContainer(CONTAINER_NAME, "a"); + ListContainerOptions options = ListContainerOptions.Builder + .withDetails() + .inDirectory(""); + PageSet res = blobStore.list(CONTAINER_NAME, options); + assertTrue(res.size() == 1); + assertEquals(res.iterator().next().getName(), "a"); + } + public void testList_NotExistingContainer() { // Testing list for a not existing container try { 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 c7e658e322..0d336a66be 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java @@ -408,7 +408,7 @@ public final class LocalBlobStore implements BlobStore { } public boolean apply(StorageMetadata metadata) { - if (prefix == null) + if (prefix == null || prefix.isEmpty()) return metadata.getName().indexOf(delimiter) == -1; // ensure we don't accidentally append twice String toMatch = prefix.endsWith("/") ? prefix : prefix + delimiter;