diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest.java index 5267e81a1..8038206e9 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest.java @@ -134,6 +134,19 @@ public void testFilterIsPrefixOfKey() throws MissingObjectException, assertTrue(filter.include(fakeWalk("d/e/f/g/h"))); } + @Test + public void testLongPaths() throws MissingObjectException, + IncorrectObjectTypeException, IOException { + TreeFilter longPathFilter = PathFilterGroup + .createFromStrings( + "tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest.java", + "tst/org/eclipse/jgit/treewalk/filter/PathFilterGroupTest2.java"); + assertFalse(longPathFilter + .include(fakeWalk("tst/org/eclipse/jgit/treewalk/FileTreeIteratorTest.java"))); + assertFalse(longPathFilter.include(fakeWalk("tst/a-other-in-same"))); + assertFalse(longPathFilter.include(fakeWalk("a-nothing-in-common"))); + } + @Test public void testStopWalk() throws MissingObjectException, IncorrectObjectTypeException, IOException { diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ByteArraySet.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ByteArraySet.java index 0df24af24..5a3535982 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ByteArraySet.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/filter/ByteArraySet.java @@ -88,7 +88,7 @@ private byte[] get(final byte[] toFind, int length, int hash) { } private static boolean equals(byte[] a, byte[] b, int length) { - if (a.length < length || b.length < length) + if (a.length != length || b.length < length) return false; for (int i = 0; i < length; ++i) { if (a[i] != b[i])