diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 2888e1e..88f1e4f 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -533,7 +533,7 @@ public class AssignmentManager extends ZooKeeperListener { } if (!failover && !useZKForAssignment) { // If any region except meta is in transition on a live server, it's a failover. - Map regionsInTransition = regionStates.getRegionsInTransition(); + Map regionsInTransition = regionStates.getRegionStates(); if (!regionsInTransition.isEmpty()) { Set onlineServers = serverManager.getOnlineServers().keySet(); for (RegionState regionState: regionsInTransition.values()) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java index 9d9401e..e11910b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/RegionStates.java @@ -70,7 +70,7 @@ public class RegionStates { * Region encoded name to state map. * All the regions should be in this map. */ - private final Map regionStates; + private final HashMap regionStates; /** * Server to regions assignment map. @@ -188,6 +188,11 @@ public class RegionStates { public synchronized Map getRegionsInTransition() { return (Map)regionsInTransition.clone(); } + + @SuppressWarnings("unchecked") + public synchronized Map getRegionStates() { + return (Map) regionStates.clone(); + } /** * @return True if specified region in transition. @@ -325,9 +330,7 @@ public class RegionStates { } lastAssignments.put(encodedName, lastHost); regionAssignments.put(hri, lastHost); - } else if (!regionState.isUnassignable()) { - regionsInTransition.put(encodedName, regionState); - } + } if (lastHost != null && newState != State.SPLIT) { addToServerHoldings(serverName, hri); }