diff --git a/common/source/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContent.java b/common/source/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContent.java index 8132da599f80da71b4820eb1326f7c5c4ea162e1..05a679ee81a6cd151f3cf84e7743554e16a67f86 100644 --- a/common/source/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContent.java +++ b/common/source/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContent.java @@ -207,15 +207,13 @@ class DefaultFileBasedHierarchicalContent implements IHierarchicalContent assert dirNode.isDirectory() : "expected a directory node, got: " + dirNode; for (IHierarchicalContentNode childNode : dirNode.getChildNodes()) { + if (filter.accept(childNode)) + { + result.add(childNode); + } if (childNode.isDirectory()) { findMatchingNodes(childNode, filter, result); - } else - { - if (filter.accept(childNode)) - { - result.add(childNode); - } } } } diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContentTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContentTest.java index f594e17c0e51d526b291e23b0093aefde91c77f0..cdbfd78c8323b097e0dd271c3bef561c898d865f 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContentTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/io/DefaultFileBasedHierarchicalContentTest.java @@ -343,12 +343,13 @@ public class DefaultFileBasedHierarchicalContentTest extends AbstractFileSystemT // matches in levels > 1 List<IHierarchicalContentNode> matchingSubDirFiles = rootContent.listMatchingNodes("subDir/.*"); - assertEquals(4, matchingSubDirFiles.size()); + assertEquals(5, matchingSubDirFiles.size()); sortNodes(matchingSubDirFiles); - checkNodeMatchesFile(matchingSubDirFiles.get(0), subFile1); - checkNodeMatchesFile(matchingSubDirFiles.get(1), subFile2); - checkNodeMatchesFile(matchingSubDirFiles.get(2), subFile3); - checkNodeMatchesFile(matchingSubDirFiles.get(3), subSubFile); + checkNodeMatchesFile(matchingSubDirFiles.get(0), subSubDir); + checkNodeMatchesFile(matchingSubDirFiles.get(1), subFile1); + checkNodeMatchesFile(matchingSubDirFiles.get(2), subFile2); + checkNodeMatchesFile(matchingSubDirFiles.get(3), subFile3); + checkNodeMatchesFile(matchingSubDirFiles.get(4), subSubFile); context.assertIsSatisfied(); }