You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2016/06/06 09:50:56 UTC

svn commit: r1746981 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java

Author: amitj
Date: Mon Jun  6 09:50:56 2016
New Revision: 1746981

URL: http://svn.apache.org/viewvc?rev=1746981&view=rev
Log:
OAK-4432: Ignore files in the root directory of the FileDataStore in #getAllIdentifiers

Fixed

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java?rev=1746981&r1=1746980&r2=1746981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStore.java Mon Jun  6 09:50:56 2016
@@ -38,7 +38,6 @@ import com.google.common.io.BaseEncoding
 import com.google.common.io.Closeables;
 import com.google.common.io.Files;
 
-import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.filefilter.FileFilterUtils;
 import org.apache.jackrabbit.core.data.DataIdentifier;
@@ -50,6 +49,8 @@ import org.apache.jackrabbit.oak.plugins
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.commons.io.FilenameUtils.normalizeNoEndSeparator;
+
 /**
  *  Oak specific extension of JR2 FileDataStore which enables
  *  provisioning the signing key via OSGi config
@@ -67,12 +68,13 @@ public class OakFileDataStore extends Fi
 
     @Override
     public Iterator<DataIdentifier> getAllIdentifiers() {
-        final String path = FilenameUtils.normalizeNoEndSeparator(getPath());
+        final String path = normalizeNoEndSeparator(getPath());
         return Files.fileTreeTraverser().postOrderTraversal(new File(getPath()))
                 .filter(new Predicate<File>() {
                     @Override
                     public boolean apply(File input) {
-                        return input.isFile() && !input.getParent().equals(path);
+                        return input.isFile() &&
+                            !normalizeNoEndSeparator(input.getParent()).equals(path);
                     }
                 })
                 .transform(new Function<File, DataIdentifier>() {

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java?rev=1746981&r1=1746980&r2=1746981&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java Mon Jun  6 09:50:56 2016
@@ -42,9 +42,10 @@ public class OakFileDataStoreTest {
     @Test
     public void testGetAllIdentifiers() throws Exception {
         File testDir = new File("./target", "oak-fds-test");
-        FileUtils.touch(new File(testDir, "a"));
-        FileUtils.touch(new File(testDir, "b"));
-        FileUtils.touch(new File(testDir, "adir/c"));
+        FileUtils.touch(new File(testDir, "ab/cd/ef/abcdef"));
+        FileUtils.touch(new File(testDir, "bc/de/fg/bcdefg"));
+        FileUtils.touch(new File(testDir, "cd/ef/gh/cdefgh"));
+        FileUtils.touch(new File(testDir, "c"));
 
         FileDataStore fds = new OakFileDataStore();
         fds.setPath(testDir.getAbsolutePath());
@@ -58,7 +59,7 @@ public class OakFileDataStoreTest {
             }
         }));
 
-        Set<String> expectedNames = Sets.newHashSet("a","b","c");
+        Set<String> expectedNames = Sets.newHashSet("abcdef","bcdefg","cdefgh");
         assertEquals(expectedNames, fileNames);
         FileUtils.cleanDirectory(testDir);
     }