diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java index 5555062..770d8a4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java @@ -379,7 +379,7 @@ public class AssignProcedure extends RegionTransitionProcedure { return RegionInfo.COMPARATOR.compare(left.getRegionInfo(), right.getRegionInfo()); } return -1; - } else if (left.getRegionInfo().isMetaRegion()) { + } else if (right.getRegionInfo().isMetaRegion()) { return +1; } if (left.getRegionInfo().getTable().isSystemTable()) { @@ -387,7 +387,7 @@ public class AssignProcedure extends RegionTransitionProcedure { return RegionInfo.COMPARATOR.compare(left.getRegionInfo(), right.getRegionInfo()); } return -1; - } else if (left.getRegionInfo().getTable().isSystemTable()) { + } else if (right.getRegionInfo().getTable().isSystemTable()) { return +1; } return RegionInfo.COMPARATOR.compare(left.getRegionInfo(), right.getRegionInfo()); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestAssignProcedure.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestAssignProcedure.java index ccf88de..f5a69ad 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestAssignProcedure.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/snapshot/TestAssignProcedure.java @@ -64,11 +64,15 @@ public class TestAssignProcedure { @Test public void testComparatorWithMetas() { List procedures = new ArrayList(); + RegionInfo system = RegionInfoBuilder.newBuilder(TableName.NAMESPACE_TABLE_NAME).build(); + procedures.add(new AssignProcedure(system)); RegionInfo user1 = RegionInfoBuilder.newBuilder(TableName.valueOf("user_space1")).build(); + RegionInfo user2 = RegionInfoBuilder.newBuilder(TableName.valueOf("user_space2")).build(); procedures.add(new AssignProcedure(user1)); RegionInfo meta2 = RegionInfoBuilder.newBuilder(TableName.META_TABLE_NAME). setStartKey(Bytes.toBytes("002")).build(); procedures.add(new AssignProcedure(meta2)); + procedures.add(new AssignProcedure(user2)); RegionInfo meta1 = RegionInfoBuilder.newBuilder(TableName.META_TABLE_NAME). setStartKey(Bytes.toBytes("001")).build(); procedures.add(new AssignProcedure(meta1)); @@ -76,10 +80,6 @@ public class TestAssignProcedure { RegionInfo meta0 = RegionInfoBuilder.newBuilder(TableName.META_TABLE_NAME). setStartKey(Bytes.toBytes("000")).build(); procedures.add(new AssignProcedure(meta0)); - RegionInfo user2 = RegionInfoBuilder.newBuilder(TableName.valueOf("user_space2")).build(); - procedures.add(new AssignProcedure(user2)); - RegionInfo system = RegionInfoBuilder.newBuilder(TableName.NAMESPACE_TABLE_NAME).build(); - procedures.add(new AssignProcedure(system)); procedures.sort(AssignProcedure.COMPARATOR); assertTrue(procedures.get(0).getRegionInfo().equals(RegionInfoBuilder.FIRST_META_REGIONINFO)); assertTrue(procedures.get(1).getRegionInfo().equals(meta0));