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 2011/08/16 01:10:12 UTC
svn commit: r1158058 - in /hbase/trunk: ./
src/main/java/org/apache/hadoop/hbase/coprocessor/
src/main/java/org/apache/hadoop/hbase/regionserver/
src/test/java/org/apache/hadoop/hbase/coprocessor/
src/test/java/org/apache/hadoop/hbase/regionserver/
Author: tedyu
Date: Mon Aug 15 23:10:12 2011
New Revision: 1158058
URL: http://svn.apache.org/viewvc?rev=1158058&view=rev
Log:
HBASE-4197 RegionServer expects all scanner to be subclasses of
HRegion.RegionScanner (Lars Hofhansl)
Added:
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java
Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Mon Aug 15 23:10:12 2011
@@ -14,6 +14,8 @@ Release 0.91.0 - Unreleased
HBASE-451 Remove HTableDescriptor from HRegionInfo
addendum that fixes TestTableMapReduce
HBASE-3534 Action should not store or serialize regionName (Ted Yu)
+ HBASE-4197 RegionServer expects all scanner to be subclasses of
+ HRegion.RegionScanner (Lars Hofhansl)
BUG FIXES
HBASE-3280 YouAreDeadException being swallowed in HRS getMaster
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseRegionObserver.java Mon Aug 15 23:10:12 2011
@@ -31,6 +31,7 @@ import org.apache.hadoop.hbase.filter.Co
import org.apache.hadoop.hbase.filter.WritableByteArrayComparable;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.InternalScanner;
+import org.apache.hadoop.hbase.regionserver.RegionScanner;
import org.apache.hadoop.hbase.regionserver.wal.HLogKey;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
@@ -196,14 +197,14 @@ public abstract class BaseRegionObserver
}
@Override
- public InternalScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
- final Scan scan, final InternalScanner s) throws IOException {
+ public RegionScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
+ final Scan scan, final RegionScanner s) throws IOException {
return s;
}
@Override
- public InternalScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
- final Scan scan, final InternalScanner s) throws IOException {
+ public RegionScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> e,
+ final Scan scan, final RegionScanner s) throws IOException {
return s;
}
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/RegionObserver.java Mon Aug 15 23:10:12 2011
@@ -31,6 +31,7 @@ import org.apache.hadoop.hbase.filter.Co
import org.apache.hadoop.hbase.filter.WritableByteArrayComparable;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.InternalScanner;
+import org.apache.hadoop.hbase.regionserver.RegionScanner;
import org.apache.hadoop.hbase.regionserver.wal.HLogKey;
import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
@@ -451,12 +452,12 @@ public interface RegionObserver extends
* @param c the environment provided by the region server
* @param scan the Scan specification
* @param s if not null, the base scanner
- * @return an InternalScanner instance to use instead of the base scanner if
+ * @return an RegionScanner instance to use instead of the base scanner if
* overriding default behavior, null otherwise
* @throws IOException if an error occurred on the coprocessor
*/
- InternalScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
- final Scan scan, final InternalScanner s)
+ RegionScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
+ final Scan scan, final RegionScanner s)
throws IOException;
/**
@@ -470,8 +471,8 @@ public interface RegionObserver extends
* @return the scanner instance to use
* @throws IOException if an error occurred on the coprocessor
*/
- InternalScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
- final Scan scan, final InternalScanner s)
+ RegionScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
+ final Scan scan, final RegionScanner s)
throws IOException;
/**
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Mon Aug 15 23:10:12 2011
@@ -1322,10 +1322,10 @@ public class HRegion implements HeapSize
* This Iterator must be closed by the caller.
*
* @param scan configured {@link Scan}
- * @return InternalScanner
+ * @return RegionScanner
* @throws IOException read exceptions
*/
- public InternalScanner getScanner(Scan scan) throws IOException {
+ public RegionScanner getScanner(Scan scan) throws IOException {
return getScanner(scan, null);
}
@@ -1338,7 +1338,7 @@ public class HRegion implements HeapSize
}
}
- protected InternalScanner getScanner(Scan scan, List<KeyValueScanner> additionalScanners) throws IOException {
+ protected RegionScanner getScanner(Scan scan, List<KeyValueScanner> additionalScanners) throws IOException {
startRegionOperation();
this.readRequestsCount.increment();
try {
@@ -1349,16 +1349,16 @@ public class HRegion implements HeapSize
checkFamily(family);
}
}
- return instantiateInternalScanner(scan, additionalScanners);
+ return instantiateRegionScanner(scan, additionalScanners);
} finally {
closeRegionOperation();
}
}
- protected InternalScanner instantiateInternalScanner(Scan scan,
+ protected RegionScanner instantiateRegionScanner(Scan scan,
List<KeyValueScanner> additionalScanners) throws IOException {
- return new RegionScanner(scan, additionalScanners);
+ return new RegionScannerImpl(scan, additionalScanners);
}
/*
@@ -2582,11 +2582,9 @@ public class HRegion implements HeapSize
}
/**
- * RegionScanner is an iterator through a bunch of rows in an HRegion.
- * <p>
- * It is used to combine scanners from multiple Stores (aka column families).
+ * RegionScannerImpl 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;
@@ -2597,10 +2595,10 @@ public class HRegion implements HeapSize
private boolean filterClosed = false;
private long readPt;
- public HRegionInfo getRegionName() {
+ public HRegionInfo getRegionInfo() {
return regionInfo;
}
- RegionScanner(Scan scan, List<KeyValueScanner> additionalScanners) throws IOException {
+ RegionScannerImpl(Scan scan, List<KeyValueScanner> additionalScanners) throws IOException {
//DebugPrint.println("HRegionScanner.<init>");
this.filter = scan.getFilter();
this.batch = scan.getBatch();
@@ -2628,7 +2626,7 @@ public class HRegion implements HeapSize
this.storeHeap = new KeyValueHeap(scanners, comparator);
}
- RegionScanner(Scan scan) throws IOException {
+ RegionScannerImpl(Scan scan) throws IOException {
this(scan, null);
}
@@ -2681,7 +2679,7 @@ public class HRegion implements HeapSize
/*
* @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();
}
@@ -3360,7 +3358,7 @@ public class HRegion implements HeapSize
// memstore scan
iscan.checkOnlyMemStore();
- InternalScanner scanner = null;
+ RegionScanner scanner = null;
try {
scanner = getScanner(iscan);
scanner.next(results);
@@ -3440,7 +3438,7 @@ public class HRegion implements HeapSize
}
}
- InternalScanner scanner = null;
+ RegionScanner scanner = null;
try {
scanner = getScanner(scan);
scanner.next(results);
@@ -3831,7 +3829,7 @@ public class HRegion implements HeapSize
// Default behavior
Scan scan = new Scan();
// scan.addFamily(HConstants.CATALOG_FAMILY);
- InternalScanner scanner = region.getScanner(scan);
+ RegionScanner scanner = region.getScanner(scan);
try {
List<KeyValue> kvs = new ArrayList<KeyValue>();
boolean done = false;
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Mon Aug 15 23:10:12 2011
@@ -252,8 +252,8 @@ public class HRegionServer implements HR
// flag set after we're done setting up server threads (used for testing)
protected volatile boolean isOnline;
- final Map<String, InternalScanner> scanners =
- new ConcurrentHashMap<String, InternalScanner>();
+ final Map<String, RegionScanner> scanners =
+ new ConcurrentHashMap<String, RegionScanner>();
// zookeeper connection and watcher
private ZooKeeperWatcher zooKeeper;
@@ -451,14 +451,11 @@ public class HRegionServer implements HR
return NORMAL_QOS; // doh.
}
String scannerIdString = Long.toString(scannerId);
- InternalScanner scanner = scanners.get(scannerIdString);
- if (scanner instanceof HRegion.RegionScanner) {
- HRegion.RegionScanner rs = (HRegion.RegionScanner) scanner;
- HRegionInfo regionName = rs.getRegionName();
- if (regionName.isMetaRegion()) {
- // LOG.debug("High priority scanner request: " + scannerId);
- return HIGH_QOS;
- }
+ RegionScanner scanner = scanners.get(scannerIdString);
+ HRegionInfo regionName = scanner.getRegionInfo();
+ if (regionName.isMetaRegion()) {
+ // LOG.debug("High priority scanner request: " + scannerId);
+ return HIGH_QOS;
}
} else if (inv.getParameterClasses().length == 0) {
// Just let it through. This is getOnlineRegions, etc.
@@ -823,7 +820,7 @@ public class HRegionServer implements HR
private void closeAllScanners() {
// Close any outstanding scanners. Means they'll get an UnknownScanner
// exception next time they come in.
- for (Map.Entry<String, InternalScanner> e : this.scanners.entrySet()) {
+ for (Map.Entry<String, RegionScanner> e : this.scanners.entrySet()) {
try {
e.getValue().close();
} catch (IOException ioe) {
@@ -1955,7 +1952,7 @@ public class HRegionServer implements HR
try {
HRegion r = getRegion(regionName);
r.prepareScanner(scan);
- InternalScanner s = null;
+ RegionScanner s = null;
if (r.getCoprocessorHost() != null) {
s = r.getCoprocessorHost().preScannerOpen(scan);
}
@@ -1971,7 +1968,7 @@ public class HRegionServer implements HR
}
}
- protected long addScanner(InternalScanner s) throws LeaseStillHeldException {
+ protected long addScanner(RegionScanner s) throws LeaseStillHeldException {
long scannerId = -1L;
scannerId = rand.nextLong();
String scannerName = String.valueOf(scannerId);
@@ -1990,7 +1987,7 @@ public class HRegionServer implements HR
public Result[] next(final long scannerId, int nbRows) throws IOException {
String scannerName = String.valueOf(scannerId);
- InternalScanner s = this.scanners.get(scannerName);
+ RegionScanner s = this.scanners.get(scannerName);
if (s == null) throw new UnknownScannerException("Name: " + scannerName);
try {
checkOpen();
@@ -2015,14 +2012,7 @@ public class HRegionServer implements HR
List<KeyValue> values = new ArrayList<KeyValue>();
// Call coprocessor. Get region info from scanner.
- HRegion region = null;
- if (s instanceof HRegion.RegionScanner) {
- HRegion.RegionScanner rs = (HRegion.RegionScanner) s;
- region = getRegion(rs.getRegionName().getRegionName());
- } else {
- throw new IOException("InternalScanner implementation is expected " +
- "to be HRegion.RegionScanner.");
- }
+ HRegion region = getRegion(s.getRegionInfo().getRegionName());
if (region != null && region.getCoprocessorHost() != null) {
Boolean bypass = region.getCoprocessorHost().preScannerNext(s,
results, nbRows);
@@ -2034,7 +2024,7 @@ public class HRegionServer implements HR
}
}
if (bypass != null) {
- return ((HRegion.RegionScanner) s).isFilterDone() && results.isEmpty() ? null
+ return s.isFilterDone() && results.isEmpty() ? null
: results.toArray(new Result[0]);
}
}
@@ -2061,13 +2051,10 @@ public class HRegionServer implements HR
region.getCoprocessorHost().postScannerNext(s, results, nbRows, true);
}
- // Below is an ugly hack where we cast the InternalScanner to be a
- // HRegion.RegionScanner. The alternative is to change InternalScanner
- // interface but its used everywhere whereas we just need a bit of info
- // from HRegion.RegionScanner, IF its filter if any is done with the scan
+ // If the scanner's 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 s.isFilterDone() && results.isEmpty() ? null
: results.toArray(new Result[0]);
} catch (Throwable t) {
if (t instanceof NotServingRegionException) {
@@ -2088,18 +2075,12 @@ public class HRegionServer implements HR
checkOpen();
requestCount.incrementAndGet();
String scannerName = String.valueOf(scannerId);
- InternalScanner s = scanners.get(scannerName);
+ RegionScanner s = scanners.get(scannerName);
HRegion region = null;
if (s != null) {
// call coprocessor.
- if (s instanceof HRegion.RegionScanner) {
- HRegion.RegionScanner rs = (HRegion.RegionScanner) s;
- region = getRegion(rs.getRegionName().getRegionName());
- } else {
- throw new IOException("InternalScanner implementation is expected " +
- "to be HRegion.RegionScanner.");
- }
+ region = getRegion(s.getRegionInfo().getRegionName());
if (region != null && region.getCoprocessorHost() != null) {
if (region.getCoprocessorHost().preScannerClose(s)) {
return; // bypass
@@ -2134,7 +2115,7 @@ public class HRegionServer implements HR
public void leaseExpired() {
LOG.info("Scanner " + this.scannerName + " lease expired");
- InternalScanner s = scanners.remove(this.scannerName);
+ RegionScanner s = scanners.remove(this.scannerName);
if (s != null) {
try {
s.close();
Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java Mon Aug 15 23:10:12 2011
@@ -803,9 +803,9 @@ public class RegionCoprocessorHost
* bypassed, false otherwise
* @exception IOException Exception
*/
- public InternalScanner preScannerOpen(Scan scan) throws IOException {
+ public RegionScanner preScannerOpen(Scan scan) throws IOException {
boolean bypass = false;
- InternalScanner s = null;
+ RegionScanner s = null;
ObserverContext<RegionCoprocessorEnvironment> ctx = null;
for (RegionEnvironment env: coprocessors) {
if (env.getInstance() instanceof RegionObserver) {
@@ -826,7 +826,7 @@ public class RegionCoprocessorHost
* @return the scanner instance to use
* @exception IOException Exception
*/
- public InternalScanner postScannerOpen(final Scan scan, InternalScanner s)
+ public RegionScanner postScannerOpen(final Scan scan, RegionScanner s)
throws IOException {
ObserverContext<RegionCoprocessorEnvironment> ctx = null;
for (RegionEnvironment env: coprocessors) {
Added: hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java?rev=1158058&view=auto
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java (added)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionScanner.java Mon Aug 15 23:10:12 2011
@@ -0,0 +1,38 @@
+/**
+ * Copyright 2011 The Apache Software Foundation
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.regionserver;
+
+import org.apache.hadoop.hbase.HRegionInfo;
+
+/**
+ * RegionScanner describes iterators over rows in an HRegion.
+ */
+public interface RegionScanner extends InternalScanner {
+ /**
+ * @return The RegionInfo for this scanner.
+ */
+ public HRegionInfo getRegionInfo();
+
+ /**
+ * @return True if a filter indicates that this scanner will return no
+ * further rows.
+ */
+ public boolean isFilterDone();
+}
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.java Mon Aug 15 23:10:12 2011
@@ -37,6 +37,7 @@ import org.apache.hadoop.hbase.client.Re
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.regionserver.HRegion;
import org.apache.hadoop.hbase.regionserver.InternalScanner;
+import org.apache.hadoop.hbase.regionserver.RegionScanner;
import org.apache.hadoop.hbase.util.Bytes;
/**
@@ -144,16 +145,16 @@ public class SimpleRegionObserver extend
}
@Override
- public InternalScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
+ public RegionScanner preScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
final Scan scan,
- final InternalScanner s) throws IOException {
+ final RegionScanner s) throws IOException {
hadPreScannerOpen = true;
return null;
}
@Override
- public InternalScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
- final Scan scan, final InternalScanner s)
+ public RegionScanner postScannerOpen(final ObserverContext<RegionCoprocessorEnvironment> c,
+ final Scan scan, final RegionScanner s)
throws IOException {
hadPostScannerOpen = true;
return s;
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java Mon Aug 15 23:10:12 2011
@@ -66,7 +66,7 @@ import org.apache.hadoop.hbase.filter.Fi
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 @@ public class TestHRegion extends HBaseTe
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());
}
/**
Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java?rev=1158058&r1=1158057&r2=1158058&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestWideScanner.java Mon Aug 15 23:10:12 2011
@@ -138,7 +138,7 @@ public class TestWideScanner extends HBa
// trigger ChangedReadersObservers
Iterator<KeyValueScanner> scanners =
- ((HRegion.RegionScanner)s).storeHeap.getHeap().iterator();
+ ((HRegion.RegionScannerImpl)s).storeHeap.getHeap().iterator();
while (scanners.hasNext()) {
StoreScanner ss = (StoreScanner)scanners.next();
ss.updateReaders();