Author: stack
Date: Thu Jun 16 21:24:57 2011
New Revision: 1136689

URL: http://svn.apache.org/viewvc?rev=1136689&view=rev
Log:
HBASE-3987 Fix a NullPointerException on a failure to load Bloom filter data

Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1136689&r1=1136688&r2=1136689&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Thu Jun 16 21:24:57 2011
@@ -335,6 +335,9 @@ Release 0.90.4 - Unreleased
                instead of localhost. (Li Pi)
    HBASE-3985  Same Region could be picked out twice in LoadBalance
                (Jieshan Bean)
+   HBASE-3987  Fix a NullPointerException on a failure to load Bloom filter 
data
+               (Mikhail Bautin)
+
 
   IMPROVEMENT
    HBASE-3882  hbase-config.sh needs to be updated so it can auto-detects the

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java?rev=1136689&r1=1136688&r2=1136689&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java 
(original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java 
Thu Jun 16 21:24:57 2011
@@ -983,7 +983,8 @@ public class StoreFile {
     }
 
     private boolean passesBloomFilter(Scan scan, final SortedSet<byte[]> 
columns) {
-      if (this.bloomFilter == null || !scan.isGetScan()) {
+      BloomFilter bm = this.bloomFilter;
+      if (bm == null || !scan.isGetScan()) {
         return true;
       }
       byte[] row = scan.getStartRow();
@@ -1011,11 +1012,11 @@ public class StoreFile {
             // columns, a file might be skipped if using row+col Bloom filter.
             // In order to ensure this file is included an additional check is
             // required looking only for a row bloom.
-            return this.bloomFilter.contains(key, bloom) ||
-                this.bloomFilter.contains(row, bloom);
+            return bm.contains(key, bloom) ||
+                bm.contains(row, bloom);
           }
           else {
-            return this.bloomFilter.contains(key, bloom);
+            return bm.contains(key, bloom);
           }
         }
       } catch (IOException e) {


Reply via email to