From ce2995c49d111b5749a88b4de2065a3a68551386 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Mon, 19 Jan 2009 23:56:57 +0000 Subject: [PATCH] HBASE-1136 HashFunction inadvertently destroys some randomness; REVERTING git-svn-id: https://svn.apache.org/repos/asf/hadoop/hbase/trunk@735880 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 2 -- src/java/org/onelab/filter/HashFunction.java | 3 +-- src/test/org/onelab/test/TestFilter.java | 4 ++-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 7e9c8010176..970250b4eae 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,8 +3,6 @@ Release 0.20.0 - Unreleased INCOMPATIBLE CHANGES BUG FIXES - HBASE-1136 HashFunction inadvertently destroys some randomness - (Jonathan Ellis via Stack) HBASE-1140 "ant clean test" fails (Nitay Joffe via Stack) IMPROVEMENTS diff --git a/src/java/org/onelab/filter/HashFunction.java b/src/java/org/onelab/filter/HashFunction.java index cf97c7bcaa2..a0c26964e2f 100644 --- a/src/java/org/onelab/filter/HashFunction.java +++ b/src/java/org/onelab/filter/HashFunction.java @@ -118,8 +118,7 @@ public final class HashFunction { } int[] result = new int[nbHash]; for (int i = 0, initval = 0; i < nbHash; i++) { - initval = hashFunction.hash(b, initval); - result[i] = Math.abs(initval) % maxValue; + initval = result[i] = Math.abs(hashFunction.hash(b, initval) % maxValue); } return result; }//end hash() diff --git a/src/test/org/onelab/test/TestFilter.java b/src/test/org/onelab/test/TestFilter.java index 363fc945148..6c88c1ab33f 100644 --- a/src/test/org/onelab/test/TestFilter.java +++ b/src/test/org/onelab/test/TestFilter.java @@ -274,7 +274,7 @@ public class TestFilter extends TestCase { bf.add(k2); bf.add(k3); assertTrue(bf.membershipTest(key)); - assertFalse(bf.membershipTest(k2)); + assertTrue(bf.membershipTest(new StringKey("graknyl"))); assertFalse(bf.membershipTest(new StringKey("xyzzy"))); assertFalse(bf.membershipTest(new StringKey("abcd"))); @@ -287,7 +287,7 @@ public class TestFilter extends TestCase { bf2.add(key); bf.or(bf2); assertTrue(bf.membershipTest(key)); - assertTrue(bf.membershipTest(k2)); + assertTrue(bf.membershipTest(new StringKey("graknyl"))); assertFalse(bf.membershipTest(new StringKey("xyzzy"))); assertFalse(bf.membershipTest(new StringKey("abcd")));