.../org/apache/hadoop/hbase/io/HalfStoreFileReader.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java index 0dd7742..3c5a437 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/HalfStoreFileReader.java @@ -307,13 +307,18 @@ public class HalfStoreFileReader extends StoreFile.Reader { return super.getLastKey(); } // Get a scanner that caches the block and that uses pread. - HFileScanner scanner = getScanner(true, true); + HFileScanner scanner = null; + scanner = getScanner(true, true); try { if (scanner.seekBefore(this.splitCell)) { return scanner.getKey(); } } catch (IOException e) { LOG.warn("Failed seekBefore " + Bytes.toStringBinary(this.splitkey), e); + } finally { + if (scanner != null) { + scanner.close(); + } } return null; } @@ -327,7 +332,8 @@ public class HalfStoreFileReader extends StoreFile.Reader { @Override public Cell getFirstKey() { if (!firstKeySeeked) { - HFileScanner scanner = getScanner(true, true, false); + HFileScanner scanner = null; + scanner = getScanner(true, true, false); try { if (scanner.seekTo()) { this.firstKey = scanner.getKey(); @@ -335,6 +341,10 @@ public class HalfStoreFileReader extends StoreFile.Reader { firstKeySeeked = true; } catch (IOException e) { LOG.warn("Failed seekTo first KV in the file", e); + } finally { + if(scanner != null) { + scanner.close(); + } } } return this.firstKey;