Index: src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java (revision 1156967) +++ src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java (working copy) @@ -138,7 +138,7 @@ // trigger ChangedReadersObservers Iterator scanners = - ((HRegion.RegionScanner)s).storeHeap.getHeap().iterator(); + ((HRegion.RegionScannerImpl)s).storeHeap.getHeap().iterator(); while (scanners.hasNext()) { StoreScanner ss = (StoreScanner)scanners.next(); ss.updateReaders(); Index: src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java (revision 1156967) +++ src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java (working copy) @@ -66,7 +66,7 @@ import org.apache.hadoop.hbase.filter.NullComparator; import org.apache.hadoop.hbase.filter.PrefixFilter; import org.apache.hadoop.hbase.filter.SingleColumnValueFilter; -import org.apache.hadoop.hbase.regionserver.HRegion.RegionScanner; +import org.apache.hadoop.hbase.regionserver.HRegion.RegionScannerImpl; import org.apache.hadoop.hbase.regionserver.wal.HLog; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.util.EnvironmentEdgeManager; @@ -1439,22 +1439,22 @@ region.put(put); Scan scan = null; - HRegion.RegionScanner is = null; + HRegion.RegionScannerImpl is = null; //Testing to see how many scanners that is produced by getScanner, starting //with known number, 2 - current = 1 scan = new Scan(); scan.addFamily(fam2); scan.addFamily(fam4); - is = (RegionScanner) region.getScanner(scan); + is = (RegionScannerImpl) region.getScanner(scan); ReadWriteConsistencyControl.resetThreadReadPoint(region.getRWCC()); - assertEquals(1, ((RegionScanner)is).storeHeap.getHeap().size()); + assertEquals(1, ((RegionScannerImpl)is).storeHeap.getHeap().size()); scan = new Scan(); - is = (RegionScanner) region.getScanner(scan); + is = (RegionScannerImpl) region.getScanner(scan); ReadWriteConsistencyControl.resetThreadReadPoint(region.getRWCC()); assertEquals(families.length -1, - ((RegionScanner)is).storeHeap.getHeap().size()); + ((RegionScannerImpl)is).storeHeap.getHeap().size()); } /** Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (revision 1156967) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (working copy) @@ -452,8 +452,8 @@ } String scannerIdString = Long.toString(scannerId); InternalScanner scanner = scanners.get(scannerIdString); - if (scanner instanceof HRegion.RegionScanner) { - HRegion.RegionScanner rs = (HRegion.RegionScanner) scanner; + if (scanner instanceof RegionScanner) { + RegionScanner rs = (RegionScanner) scanner; HRegionInfo regionName = rs.getRegionName(); if (regionName.isMetaRegion()) { // LOG.debug("High priority scanner request: " + scannerId); @@ -2016,12 +2016,12 @@ // Call coprocessor. Get region info from scanner. HRegion region = null; - if (s instanceof HRegion.RegionScanner) { - HRegion.RegionScanner rs = (HRegion.RegionScanner) s; + if (s instanceof RegionScanner) { + RegionScanner rs = (RegionScanner) s; region = getRegion(rs.getRegionName().getRegionName()); } else { throw new IOException("InternalScanner implementation is expected " + - "to be HRegion.RegionScanner."); + "to be a RegionScanner."); } if (region != null && region.getCoprocessorHost() != null) { Boolean bypass = region.getCoprocessorHost().preScannerNext(s, @@ -2034,7 +2034,7 @@ } } if (bypass != null) { - return ((HRegion.RegionScanner) s).isFilterDone() && results.isEmpty() ? null + return ((RegionScanner) s).isFilterDone() && results.isEmpty() ? null : results.toArray(new Result[0]); } } @@ -2067,7 +2067,7 @@ // from HRegion.RegionScanner, IF its filter if any is done with the scan // and wants to tell the client to stop the scan. This is done by passing // a null result. - return ((HRegion.RegionScanner) s).isFilterDone() && results.isEmpty() ? null + return ((RegionScanner) s).isFilterDone() && results.isEmpty() ? null : results.toArray(new Result[0]); } catch (Throwable t) { if (t instanceof NotServingRegionException) { @@ -2093,12 +2093,12 @@ HRegion region = null; if (s != null) { // call coprocessor. - if (s instanceof HRegion.RegionScanner) { - HRegion.RegionScanner rs = (HRegion.RegionScanner) s; + if (s instanceof RegionScanner) { + RegionScanner rs = (RegionScanner) s; region = getRegion(rs.getRegionName().getRegionName()); } else { throw new IOException("InternalScanner implementation is expected " + - "to be HRegion.RegionScanner."); + "to be a RegionScanner."); } if (region != null && region.getCoprocessorHost() != null) { if (region.getCoprocessorHost().preScannerClose(s)) { Index: src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (revision 1156967) +++ src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (working copy) @@ -1358,7 +1358,7 @@ protected InternalScanner instantiateInternalScanner(Scan scan, List additionalScanners) throws IOException { - return new RegionScanner(scan, additionalScanners); + return new RegionScannerImpl(scan, additionalScanners); } /* @@ -2586,7 +2586,7 @@ *

* It is used to combine scanners from multiple Stores (aka column families). */ - class RegionScanner implements InternalScanner { + class RegionScannerImpl implements RegionScanner { // Package local for testability KeyValueHeap storeHeap = null; private final byte [] stopRow; @@ -2600,7 +2600,7 @@ public HRegionInfo getRegionName() { return regionInfo; } - RegionScanner(Scan scan, List additionalScanners) throws IOException { + RegionScannerImpl(Scan scan, List additionalScanners) throws IOException { //DebugPrint.println("HRegionScanner."); this.filter = scan.getFilter(); this.batch = scan.getBatch(); @@ -2628,7 +2628,7 @@ this.storeHeap = new KeyValueHeap(scanners, comparator); } - RegionScanner(Scan scan) throws IOException { + RegionScannerImpl(Scan scan) throws IOException { this(scan, null); } @@ -2681,7 +2681,7 @@ /* * @return True if a filter rules the scanner is over, done. */ - synchronized boolean isFilterDone() { + public synchronized boolean isFilterDone() { return this.filter != null && this.filter.filterAllRemaining(); } Index: src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java (revision 0) +++ src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java (revision 0) @@ -0,0 +1,8 @@ +package org.apache.hadoop.hbase.regionserver; + +import org.apache.hadoop.hbase.HRegionInfo; + +public interface RegionScanner extends InternalScanner { + public HRegionInfo getRegionName(); + public boolean isFilterDone(); +}