HADOOP-11327. BloomFilter#not() omits the last bit, resulting in an incorrect filter. Contributed by Eric Payne
This commit is contained in:
parent
42715547f0
commit
07b0806036
|
@ -731,6 +731,9 @@ Release 2.7.0 - UNRELEASED
|
|||
HADOOP-10668. TestZKFailoverControllerStress#testExpireBackAndForth
|
||||
occasionally fails. (Ming Ma via cnauroth)
|
||||
|
||||
HADOOP-11327. BloomFilter#not() omits the last bit, resulting in an
|
||||
incorrect filter (Eric Payne via jlowe)
|
||||
|
||||
Release 2.6.0 - 2014-11-18
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
|
|
@ -157,7 +157,7 @@ public class BloomFilter extends Filter {
|
|||
|
||||
@Override
|
||||
public void not() {
|
||||
bits.flip(0, vectorSize - 1);
|
||||
bits.flip(0, vectorSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
|
|||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.AbstractCollection;
|
||||
import java.util.BitSet;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.hadoop.util.bloom.BloomFilterCommonTester.BloomFilterTestStrategy;
|
||||
|
@ -237,4 +238,14 @@ public class TestBloomFilters {
|
|||
BloomFilterTestStrategy.FILTER_AND_STRATEGY,
|
||||
BloomFilterTestStrategy.FILTER_XOR_STRATEGY)).test();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNot() {
|
||||
BloomFilter bf = new BloomFilter(8, 1, Hash.JENKINS_HASH);
|
||||
bf.bits = BitSet.valueOf(new byte[] { (byte) 0x95 });
|
||||
BitSet origBitSet = (BitSet) bf.bits.clone();
|
||||
bf.not();
|
||||
assertFalse("BloomFilter#not should have inverted all bits",
|
||||
bf.bits.intersects(origBitSet));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue