Repository: hbase
Updated Branches:
  refs/heads/master 1636afb0a -> 652b81ab1


HBASE-12181 Some tests create a table and try to use it before regions get 
assigned (Dima Spivak)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/652b81ab
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/652b81ab
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/652b81ab

Branch: refs/heads/master
Commit: 652b81ab1ea178dc5ea4d2b4a7675f69decad430
Parents: 1636afb
Author: stack <[email protected]>
Authored: Wed Oct 8 17:23:21 2014 -0700
Committer: stack <[email protected]>
Committed: Wed Oct 8 17:24:09 2014 -0700

----------------------------------------------------------------------
 .../TestSplitTransactionOnCluster.java          | 25 +++++++++++++-------
 1 file changed, 17 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/652b81ab/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
index cde1c6f..29073ed 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java
@@ -883,19 +883,28 @@ public class TestSplitTransactionOnCluster {
   public void testSplitHooksBeforeAndAfterPONR() throws Exception {
     TableName firstTable = 
TableName.valueOf("testSplitHooksBeforeAndAfterPONR_1");
     TableName secondTable = 
TableName.valueOf("testSplitHooksBeforeAndAfterPONR_2");
+    HColumnDescriptor hcd = new HColumnDescriptor("cf");
+
     HTableDescriptor desc = new HTableDescriptor(firstTable);
     desc.addCoprocessor(MockedRegionObserver.class.getName());
-    HColumnDescriptor hcd = new HColumnDescriptor("cf");
     desc.addFamily(hcd);
     admin.createTable(desc);
+    TESTING_UTIL.waitUntilAllRegionsAssigned(firstTable);
+
     desc = new HTableDescriptor(secondTable);
-    hcd = new HColumnDescriptor("cf");
     desc.addFamily(hcd);
     admin.createTable(desc);
-    List<HRegion> firstTableregions = cluster.getRegions(firstTable);
+    TESTING_UTIL.waitUntilAllRegionsAssigned(secondTable);
+
+    List<HRegion> firstTableRegions = cluster.getRegions(firstTable);
     List<HRegion> secondTableRegions = cluster.getRegions(secondTable);
+
+    // Check that both tables actually have regions.
+    if (firstTableRegions.size() == 0 || secondTableRegions.size() == 0) {
+      fail("Each table should have at least one region.");
+    }
     ServerName serverName =
-        
cluster.getServerHoldingRegion(firstTableregions.get(0).getRegionName());
+        
cluster.getServerHoldingRegion(firstTableRegions.get(0).getRegionName());
     
admin.move(secondTableRegions.get(0).getRegionInfo().getEncodedNameAsBytes(),
       Bytes.toBytes(serverName.getServerName()));
     Table table1 = null;
@@ -906,12 +915,12 @@ public class TestSplitTransactionOnCluster {
       insertData(firstTable, admin, table1);
       insertData(secondTable, admin, table2);
       admin.split(firstTable, "row2".getBytes());
-      firstTableregions = cluster.getRegions(firstTable);
-      while (firstTableregions.size() != 2) {
+      firstTableRegions = cluster.getRegions(firstTable);
+      while (firstTableRegions.size() != 2) {
         Thread.sleep(1000);
-        firstTableregions = cluster.getRegions(firstTable);
+        firstTableRegions = cluster.getRegions(firstTable);
       }
-      assertEquals("Number of regions after split should be 2.", 2, 
firstTableregions.size());
+      assertEquals("Number of regions after split should be 2.", 2, 
firstTableRegions.size());
       secondTableRegions = cluster.getRegions(secondTable);
       assertEquals("Number of regions after split should be 2.", 2, 
secondTableRegions.size());
     } finally {

Reply via email to