You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/09/24 19:56:05 UTC
svn commit: r1525953 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
Author: tedyu
Date: Tue Sep 24 17:56:05 2013
New Revision: 1525953
URL: http://svn.apache.org/r1525953
Log:
HBASE-9519 fix NPE in EncodedScannerV2.getFirstKeyInBlock()
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java?rev=1525953&r1=1525952&r2=1525953&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderV2.java Tue Sep 24 17:56:05 2013
@@ -992,17 +992,18 @@ public class HFileReaderV2 extends Abstr
"EncodedScanner works only on encoded data blocks");
}
- short dataBlockEncoderId = block.getDataBlockEncodingId();
+ updateDataBlockEncoder(block);
+ seeker.setCurrentBuffer(getEncodedBuffer(newBlock));
+ blockFetches++;
+ }
+
+ private void updateDataBlockEncoder(HFileBlock curBlock) {
+ short dataBlockEncoderId = curBlock.getDataBlockEncodingId();
if (dataBlockEncoder == null ||
- !DataBlockEncoding.isCorrectEncoder(dataBlockEncoder,
- dataBlockEncoderId)) {
- DataBlockEncoder encoder =
- DataBlockEncoding.getDataBlockEncoderById(dataBlockEncoderId);
+ !DataBlockEncoding.isCorrectEncoder(dataBlockEncoder, dataBlockEncoderId)) {
+ DataBlockEncoder encoder = DataBlockEncoding.getDataBlockEncoderById(dataBlockEncoderId);
setDataBlockEncoder(encoder);
}
-
- seeker.setCurrentBuffer(getEncodedBuffer(newBlock));
- blockFetches++;
}
private ByteBuffer getEncodedBuffer(HFileBlock newBlock) {
@@ -1097,6 +1098,7 @@ public class HFileReaderV2 extends Abstr
@Override
protected ByteBuffer getFirstKeyInBlock(HFileBlock curBlock) {
+ updateDataBlockEncoder(curBlock);
return dataBlockEncoder.getFirstKeyInBlock(getEncodedBuffer(curBlock));
}