Author: garyh
Date: Fri Sep 16 21:10:56 2011
New Revision: 1171785

URL: http://svn.apache.org/viewvc?rev=1171785&view=rev
Log:
HBASE-4420  MasterObserver preMove() and postMove() should throw IOException

Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Sep 16 21:10:56 2011
@@ -279,6 +279,8 @@ Release 0.91.0 - Unreleased
                (Stefan Seelmann)
    HBASE-4195  Possible inconsistency in a memstore read after a reseek,
                possible performance improvement (nkeywal)
+   HBASE-4420  MasterObserver preMove() and postMove() should throw
+               IOException instead of UnknownRegionException
 
   IMPROVEMENTS
    HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java
 Fri Sep 16 21:10:56 2011
@@ -177,12 +177,12 @@ public class BaseMasterObserver implemen
   @Override
   public void preMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
       HRegionInfo region, ServerName srcServer, ServerName destServer)
-  throws UnknownRegionException {
+  throws IOException {
   }
 
   @Override
   public void postMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
       HRegionInfo region, ServerName srcServer, ServerName destServer)
-  throws UnknownRegionException {
+  throws IOException {
   }
 }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java
 Fri Sep 16 21:10:56 2011
@@ -187,7 +187,7 @@ public interface MasterObserver extends 
   void preMove(final ObserverContext<MasterCoprocessorEnvironment> ctx,
       final HRegionInfo region, final ServerName srcServer,
       final ServerName destServer)
-    throws UnknownRegionException;
+    throws IOException;
 
   /**
    * Called after the region move has been requested.
@@ -199,7 +199,7 @@ public interface MasterObserver extends 
   void postMove(final ObserverContext<MasterCoprocessorEnvironment> ctx,
       final HRegionInfo region, final ServerName srcServer,
       final ServerName destServer)
-    throws UnknownRegionException;
+    throws IOException;
 
   /**
    * Called prior to assigning a specific region.

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Fri 
Sep 16 21:10:56 2011
@@ -922,16 +922,23 @@ implements HMasterInterface, HMasterRegi
       this.assignmentManager.unassign(hri);
     } else {
       dest = new ServerName(Bytes.toString(destServerName));
-      if (this.cpHost != null) {
-        if (this.cpHost.preMove(p.getFirst(), p.getSecond(), dest)) {
-          return;
+      try {
+        if (this.cpHost != null) {
+          if (this.cpHost.preMove(p.getFirst(), p.getSecond(), dest)) {
+            return;
+          }
         }
-      }
-      RegionPlan rp = new RegionPlan(p.getFirst(), p.getSecond(), dest);
-      LOG.info("Added move plan " + rp + ", running balancer");
-      this.assignmentManager.balance(rp);
-      if (this.cpHost != null) {
-        this.cpHost.postMove(p.getFirst(), p.getSecond(), dest);
+        RegionPlan rp = new RegionPlan(p.getFirst(), p.getSecond(), dest);
+        LOG.info("Added move plan " + rp + ", running balancer");
+        this.assignmentManager.balance(rp);
+        if (this.cpHost != null) {
+          this.cpHost.postMove(p.getFirst(), p.getSecond(), dest);
+        }
+      } catch (IOException ioe) {
+        UnknownRegionException ure = new UnknownRegionException(
+            Bytes.toStringBinary(encodedRegionName));
+        ure.initCause(ioe);
+        throw ure;
       }
     }
   }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 Fri Sep 16 21:10:56 2011
@@ -300,7 +300,7 @@ public class MasterCoprocessorHost
   }
 
   boolean preMove(final HRegionInfo region, final ServerName srcServer, final 
ServerName destServer)
-      throws UnknownRegionException {
+      throws IOException {
     boolean bypass = false;
     ObserverContext<MasterCoprocessorEnvironment> ctx = null;
     for (MasterEnvironment env: coprocessors) {
@@ -318,7 +318,7 @@ public class MasterCoprocessorHost
   }
 
   void postMove(final HRegionInfo region, final ServerName srcServer, final 
ServerName destServer)
-      throws UnknownRegionException {
+      throws IOException {
     ObserverContext<MasterCoprocessorEnvironment> ctx = null;
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {

Modified: 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java?rev=1171785&r1=1171784&r2=1171785&view=diff
==============================================================================
--- 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
 (original)
+++ 
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java
 Fri Sep 16 21:10:56 2011
@@ -312,7 +312,7 @@ public class TestMasterObserver {
     @Override
     public void preMove(ObserverContext<MasterCoprocessorEnvironment> env,
         HRegionInfo region, ServerName srcServer, ServerName destServer)
-    throws UnknownRegionException {
+    throws IOException {
       if (bypass) {
         env.bypass();
       }
@@ -322,7 +322,7 @@ public class TestMasterObserver {
     @Override
     public void postMove(ObserverContext<MasterCoprocessorEnvironment> env, 
HRegionInfo region,
         ServerName srcServer, ServerName destServer)
-    throws UnknownRegionException {
+    throws IOException {
       postMoveCalled = true;
     }
 


Reply via email to