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) {