You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/09/14 09:52:48 UTC

svn commit: r1384673 - /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java

Author: mbautin
Date: Fri Sep 14 07:52:47 2012
New Revision: 1384673

URL: http://svn.apache.org/viewvc?rev=1384673&view=rev
Log:
[master] [89-fb] Fix NPE in setOpen

Author: mbautin

Summary: Noticed this in TestRegionStateOnMasterFailure. rHBASEEIGHTNINEFBBRANCH1382294 introduced the line where the NPE happens. Apparently setOpen can sometimes be called when the server name is still null (that should still be investigated).

Test Plan: Run unit tests

Reviewers: aaiyer

Reviewed By: aaiyer

Differential Revision: https://reviews.facebook.net/D5397

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java?rev=1384673&r1=1384672&r2=1384673&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/RegionManager.java Fri Sep 14 07:52:47 2012
@@ -64,6 +64,8 @@ import org.apache.hadoop.hbase.zookeeper
 import org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper;
 import org.apache.hadoop.io.Text;
 
+import com.google.common.base.Preconditions;
+
 /**
  * Class to manage assigning regions to servers, state of root and meta, etc.
  */
@@ -1451,12 +1453,15 @@ public class RegionManager {
    * @param regionName
    */
   public void setOpen(String regionName) {
+    Preconditions.checkNotNull(regionName);
     synchronized (regionsInTransition) {
       RegionState s = regionsInTransition.get(regionName);
       if (s != null) {
         s.setOpen();
         this.master.getMetrics().incRegionsOpened();
-        this.regionLocationHintToDetectDupAssignment.put(regionName, s.serverName);
+        if (s.serverName != null) {
+          this.regionLocationHintToDetectDupAssignment.put(regionName, s.serverName);
+        }
       }
     }