Author: stack
Date: Thu Jun 16 21:26:07 2011
New Revision: 1136691

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

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

Modified: hbase/branches/0.90/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1136691&r1=1136690&r2=1136691&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Thu Jun 16 21:26:07 2011
@@ -33,6 +33,8 @@ Release 0.90.4 - Unreleased
                instead of localhost. (Li Pi)
    HBASE-3985  Same Region could be picked out twice in LoadBalancer
                (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/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java?rev=1136691&r1=1136690&r2=1136691&view=diff
==============================================================================
--- 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
 (original)
+++ 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFile.java
 Thu Jun 16 21:26:07 2011
@@ -951,7 +951,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();
@@ -979,11 +980,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