You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jg...@apache.org on 2010/08/19 00:27:59 UTC

svn commit: r986969 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java

Author: jgray
Date: Wed Aug 18 22:27:58 2010
New Revision: 986969

URL: http://svn.apache.org/viewvc?rev=986969&view=rev
Log:
HBASE-2928  Fault in logic in BinaryPrefixComparator leads to ArrayIndexOutOfBoundsException (pranav via jgray)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=986969&r1=986968&r2=986969&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Aug 18 22:27:58 2010
@@ -480,6 +480,8 @@ Release 0.21.0 - Unreleased
                (Libor Dener via Stack)
    HBASE-2923  Deadlock between HRegion.internalFlushCache and close
    HBASE-2927  BaseScanner gets stale HRegionInfo in some race cases
+   HBASE-2928  Fault in logic in BinaryPrefixComparator leads to
+               ArrayIndexOutOfBoundsException (pranav via jgray)
 
   IMPROVEMENTS
    HBASE-1760  Cleanup TODOs in HTable

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java?rev=986969&r1=986968&r2=986969&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/BinaryPrefixComparator.java Wed Aug 18 22:27:58 2010
@@ -42,8 +42,12 @@ public class BinaryPrefixComparator exte
 
   @Override
   public int compareTo(byte [] value) {
-    return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
-      this.value.length);
+    if (this.value.length <= value.length) {
+      return Bytes.compareTo(this.value, 0, this.value.length, value, 0,
+          this.value.length);
+    } else {
+      return Bytes.compareTo(this.value, value);
+    }
   }
 
 }

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java?rev=986969&r1=986968&r2=986969&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java Wed Aug 18 22:27:58 2010
@@ -20,9 +20,7 @@
 
 package org.apache.hadoop.hbase.filter;
 
-import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.KeyValue;
-import org.apache.hadoop.hbase.KeyValue.Type;
 import org.apache.hadoop.hbase.util.Bytes;
 
 import java.io.DataOutput;