Index: subprojects/snapshots/src/main/java/org/gradle/internal/vfs/impl/NodeWithChildren.java =================================================================== diff -u -N -r9370db993fce6649fd9109d92408949d72b6cd53 -r1c4f912c9e0462e05e48cf725bdff49a7536d906 --- subprojects/snapshots/src/main/java/org/gradle/internal/vfs/impl/NodeWithChildren.java (.../NodeWithChildren.java) (revision 9370db993fce6649fd9109d92408949d72b6cd53) +++ subprojects/snapshots/src/main/java/org/gradle/internal/vfs/impl/NodeWithChildren.java (.../NodeWithChildren.java) (revision 1c4f912c9e0462e05e48cf725bdff49a7536d906) @@ -21,22 +21,15 @@ import java.io.File; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; class NodeWithChildren extends AbstractNode { private final List children; public NodeWithChildren(String prefix, List children) { super(prefix); assert !children.isEmpty(); - ArrayList copy = new ArrayList<>(children); - copy.sort(Comparator.comparing(Node::getPrefix, pathComparator())); - if (!copy.equals(children)) { - throw new RuntimeException("Arrrrgghhh, this is not sorted: " + children.stream().map(Node::getPrefix).collect(Collectors.joining(", "))); - } this.children = children; } Index: subprojects/snapshots/src/test/groovy/org/gradle/internal/vfs/impl/DefaultFileHierarchySetTest.groovy =================================================================== diff -u -N -r3dbd9546c910e8c04907dd7ed6e4a0fdd9a15a11 -r1c4f912c9e0462e05e48cf725bdff49a7536d906 --- subprojects/snapshots/src/test/groovy/org/gradle/internal/vfs/impl/DefaultFileHierarchySetTest.groovy (.../DefaultFileHierarchySetTest.groovy) (revision 3dbd9546c910e8c04907dd7ed6e4a0fdd9a15a11) +++ subprojects/snapshots/src/test/groovy/org/gradle/internal/vfs/impl/DefaultFileHierarchySetTest.groovy (.../DefaultFileHierarchySetTest.groovy) (revision 1c4f912c9e0462e05e48cf725bdff49a7536d906) @@ -444,6 +444,16 @@ def set = fileHierarchySet([childA, childB, childB1]) then: set.flatten() == [parent.absolutePath, "1:a", "1:b", "1:b1"] + + when: + set = fileHierarchySet([parent.file("a/b/c"), parent.file("a/b-c/c"), parent.file("a/b/d")]) + then: + set.flatten() == [childA.absolutePath, "1:b", "2:c", "2:d", "1:b-c/c"] + + when: + set = fileHierarchySet([parent.file("a/b/c/a"), parent.file("a/b/c/b"), parent.file("a/b-c/c"), parent.file("a/b/d")]) + then: + set.flatten() == [childA.absolutePath, "1:b", "2:c", "3:a", "3:b", "2:d", "1:b-c/c"] } private FileSystemLocationSnapshot snapshotDir(File dir) {