diff --git src/java/org/apache/hadoop/hbase/regionserver/HRegion.java src/java/org/apache/hadoop/hbase/regionserver/HRegion.java index 4ed4cbd..1ff8d59 100644 --- src/java/org/apache/hadoop/hbase/regionserver/HRegion.java +++ src/java/org/apache/hadoop/hbase/regionserver/HRegion.java @@ -1809,7 +1809,8 @@ public class HRegion implements HConstants, HeapSize { // , Writable{ * It is used to combine scanners from multiple Stores (aka column families). */ class RegionScanner implements InternalScanner { - private KeyValueHeap storeHeap = null; + // Package local for testability + KeyValueHeap storeHeap = null; private final byte [] stopRow; private Filter filter; private RowFilterInterface oldFilter; @@ -1974,7 +1975,10 @@ public class HRegion implements HConstants, HeapSize { // , Writable{ } public void close() { - storeHeap.close(); + if (storeHeap != null) { + storeHeap.close(); + storeHeap = null; + } } /** @@ -1986,13 +1990,6 @@ public class HRegion implements HConstants, HeapSize { // , Writable{ scanner.close(); } catch(NullPointerException npe) {} } - - /** - * @return the current storeHeap - */ - public KeyValueHeap getStoreHeap() { - return this.storeHeap; - } } // Utility methods diff --git src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java index 5e1a198..5260e36 100644 --- src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -1011,13 +1011,13 @@ public class TestHRegion extends HBaseTestCase { scan.addFamily(fam4); is = (RegionScanner) region.getScanner(scan); is.initHeap(); // i dont like this test - assertEquals(1, ((RegionScanner)is).getStoreHeap().getHeap().size()); + assertEquals(1, ((RegionScanner)is).storeHeap.getHeap().size()); scan = new Scan(); is = (RegionScanner) region.getScanner(scan); is.initHeap(); assertEquals(families.length -1, - ((RegionScanner)is).getStoreHeap().getHeap().size()); + ((RegionScanner)is).storeHeap.getHeap().size()); } public void testRegionScanner_Next() throws IOException {