Fix false positives in hashing used by PathFilterGroup
The ByteArraySet failed to check the length of the entry correctly leading to matches where no match should be. Bug: 401249 Change-Id: I925bc48d9cafcdf13e1a797bb09fc2555eb270c5 Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
This commit is contained in:
parent
9a5f4b46cc
commit
5d7b722f6e
|
@ -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 {
|
||||
|
|
|
@ -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])
|
||||
|
|
Loading…
Reference in New Issue