diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 7136f72..e0bced5 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -68,11 +68,9 @@ import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.exceptions.MergeRegionException; import org.apache.hadoop.hbase.ipc.CoprocessorRpcChannel; import org.apache.hadoop.hbase.ipc.MasterCoprocessorRpcChannel; -import org.apache.hadoop.hbase.ipc.PayloadCarryingRpcController; import org.apache.hadoop.hbase.ipc.RegionServerCoprocessorRpcChannel; import org.apache.hadoop.hbase.protobuf.ProtobufUtil; import org.apache.hadoop.hbase.protobuf.RequestConverter; -import org.apache.hadoop.hbase.protobuf.ResponseConverter; import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.AdminService; import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CloseRegionRequest; import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CloseRegionResponse; @@ -85,9 +83,6 @@ import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.RollWALWriterReque import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.RollWALWriterResponse; import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.StopServerRequest; import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.UpdateConfigurationRequest; -import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ClientService; -import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanRequest; -import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanResponse; import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos; import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.NameStringPair; import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ProcedureDescription; @@ -668,27 +663,13 @@ public class HBaseAdmin implements Admin { // Wait until all regions deleted for (int tries = 0; tries < (this.numRetries * this.retryLongerMultiplier); tries++) { try { - HRegionLocation firstMetaServer = getFirstMetaServerForTable(tableName); - Scan scan = MetaTableAccessor.getScanForTableName(tableName); - scan.addColumn(HConstants.CATALOG_FAMILY, HConstants.REGIONINFO_QUALIFIER); - ScanRequest request = RequestConverter.buildScanRequest( - firstMetaServer.getRegionInfo().getRegionName(), scan, 1, true); - Result[] values = null; - // Get a batch at a time. - ClientService.BlockingInterface server = connection.getClient(firstMetaServer - .getServerName()); - PayloadCarryingRpcController controller = new PayloadCarryingRpcController(); - try { - controller.setPriority(tableName); - ScanResponse response = server.scan(controller, request); - values = ResponseConverter.getResults(controller.cellScanner(), response); - } catch (ServiceException se) { - throw ProtobufUtil.getRemoteException(se); - } + // Find whether all regions are deleted. + List regionLations = + MetaScanner.listTableRegionLocations(conf, connection, tableName); // let us wait until hbase:meta table is updated and // HMaster removes the table from its HTableDescriptors - if (values == null || values.length == 0) { + if (regionLations == null || regionLations.size() == 0) { tableExists = false; GetTableDescriptorsResponse htds; MasterKeepAliveConnection master = connection.getKeepAliveMasterService();