diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java index 6790c7e..e82bd54 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java @@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.UnknownRegionException; import org.apache.hadoop.hbase.classification.InterfaceAudience; import org.apache.hadoop.hbase.client.TableState; +import org.apache.hadoop.hbase.errorhandling.ForeignException; import org.apache.hadoop.hbase.exceptions.MergeRegionException; import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; import org.apache.hadoop.hbase.ipc.QosPriority; @@ -669,6 +670,8 @@ public class MasterRpcServices extends RSRpcServices long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME; return ExecProcedureResponse.newBuilder().setExpectedTimeout( waitTime).build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); } @@ -919,6 +922,8 @@ public class MasterRpcServices extends RSRpcServices boolean done = mpm.isProcedureDone(desc); builder.setDone(done); return builder.build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); } @@ -944,6 +949,8 @@ public class MasterRpcServices extends RSRpcServices boolean done = master.snapshotManager.isRestoreDone(snapshot); builder.setDone(done); return builder.build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); } @@ -967,6 +974,8 @@ public class MasterRpcServices extends RSRpcServices boolean done = master.snapshotManager.isSnapshotDone(request.getSnapshot()); builder.setDone(done); return builder.build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); } @@ -1179,6 +1188,8 @@ public class MasterRpcServices extends RSRpcServices SnapshotDescription reqSnapshot = request.getSnapshot(); master.snapshotManager.restoreSnapshot(reqSnapshot); return RestoreSnapshotResponse.newBuilder().build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); } @@ -1238,6 +1249,8 @@ public class MasterRpcServices extends RSRpcServices long waitTime = SnapshotDescriptionUtils.getMaxMasterTimeout(master.getConfiguration(), snapshot.getType(), SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME); return SnapshotResponse.newBuilder().setExpectedTimeout(waitTime).build(); + } catch (ForeignException e) { + throw new ServiceException(e.getCause()); } catch (IOException e) { throw new ServiceException(e); }