HBASE-18053 AsyncTableResultScanner will hang when scan wrong column family
This commit is contained in:
parent
c1b45a2c45
commit
62d7323023
|
@ -104,6 +104,7 @@ class AsyncTableResultScanner implements ResultScanner, RawScanResultConsumer {
|
||||||
@Override
|
@Override
|
||||||
public synchronized void onError(Throwable error) {
|
public synchronized void onError(Throwable error) {
|
||||||
this.error = error;
|
this.error = error;
|
||||||
|
notifyAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -30,6 +30,7 @@ import java.util.stream.IntStream;
|
||||||
|
|
||||||
import org.apache.hadoop.hbase.HBaseTestingUtility;
|
import org.apache.hadoop.hbase.HBaseTestingUtility;
|
||||||
import org.apache.hadoop.hbase.TableName;
|
import org.apache.hadoop.hbase.TableName;
|
||||||
|
import org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException;
|
||||||
import org.apache.hadoop.hbase.util.Bytes;
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
import org.apache.hadoop.hbase.util.Pair;
|
import org.apache.hadoop.hbase.util.Pair;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
@ -163,6 +164,16 @@ public abstract class AbstractTestAsyncTableScan {
|
||||||
IntStream.range(0, start + 1).forEach(i -> assertResultEquals(results.get(i), start - i));
|
IntStream.range(0, start + 1).forEach(i -> assertResultEquals(results.get(i), start - i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testScanWrongColumnFamily() throws Exception {
|
||||||
|
try {
|
||||||
|
doScan(createScan().addFamily(Bytes.toBytes("WrongColumnFamily")));
|
||||||
|
} catch (Exception e) {
|
||||||
|
assertTrue(e instanceof NoSuchColumnFamilyException
|
||||||
|
|| e.getCause() instanceof NoSuchColumnFamilyException);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void testScan(int start, boolean startInclusive, int stop, boolean stopInclusive,
|
private void testScan(int start, boolean startInclusive, int stop, boolean stopInclusive,
|
||||||
int limit) throws Exception {
|
int limit) throws Exception {
|
||||||
Scan scan =
|
Scan scan =
|
||||||
|
|
Loading…
Reference in New Issue