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 8b9849b3fc..c8e953fb6a 100644 --- a/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java +++ b/apis/filesystem/src/test/java/org/jclouds/filesystem/FilesystemBlobStoreTest.java @@ -524,6 +524,24 @@ public class FilesystemBlobStoreTest { checkForContainerContent(CONTAINER_NAME, dirs); } + @Test(dataProvider = "ignoreOnMacOSX") + public void testListDirectoryBlobsS3FS() { + blobStore.createContainerInLocation(null, CONTAINER_NAME); + checkForContainerContent(CONTAINER_NAME, null); + + String d = TestUtils.createRandomBlobKey("directory-", ""); + blobStore.putBlob(CONTAINER_NAME, createDirBlob(d + File.separator)); + assertTrue(blobStore.blobExists(CONTAINER_NAME, d + File.separator)); + + ListContainerOptions options = ListContainerOptions.Builder + .withDetails() + .inDirectory(""); + PageSet res = blobStore.list(CONTAINER_NAME, options); + assertTrue(res.size() == 1); + assertEquals(res.iterator().next().getName(), d); + } + + /** * Test of putBlob method with a complex key, with path in the filename, eg * picture/filename.jpg 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 4a69653111..e779bb9b2a 100644 --- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java +++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java @@ -261,7 +261,7 @@ public final class LocalBlobStore implements BlobStore { for (String o : commonPrefixes) { MutableStorageMetadata md = new MutableStorageMetadataImpl(); md.setType(StorageType.RELATIVE_PATH); - if (prefix != null) { + if (prefix != null && !prefix.isEmpty()) { if (!prefix.endsWith(delimiter)) { o = prefix + delimiter + o; } else {