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 2016/08/17 21:42:30 UTC
hbase git commit: HBASE-16378 Procedure v2 - Make ProcedureException
extend HBaseException
Repository: hbase
Updated Branches:
refs/heads/master 7999bb9bd -> e637a61e2
HBASE-16378 Procedure v2 - Make ProcedureException extend HBaseException
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e637a61e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e637a61e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e637a61e
Branch: refs/heads/master
Commit: e637a61e26aeb442ea1c1593fdbd0b15b48f5642
Parents: 7999bb9
Author: Matteo Bertozzi <ma...@cloudera.com>
Authored: Wed Aug 17 14:31:08 2016 -0700
Committer: Matteo Bertozzi <ma...@cloudera.com>
Committed: Wed Aug 17 14:31:08 2016 -0700
----------------------------------------------------------------------
.../hadoop/hbase/util/ForeignExceptionUtil.java | 19 +++++++++++++++++++
.../hbase/procedure2/ProcedureException.java | 5 ++---
.../procedure2/RemoteProcedureException.java | 2 +-
.../master/procedure/ServerCrashProcedure.java | 4 ----
4 files changed, 22 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/e637a61e/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ForeignExceptionUtil.java
----------------------------------------------------------------------
diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ForeignExceptionUtil.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ForeignExceptionUtil.java
index a0006ed..f9aa531 100644
--- a/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ForeignExceptionUtil.java
+++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/util/ForeignExceptionUtil.java
@@ -18,6 +18,7 @@
package org.apache.hadoop.hbase.util;
import java.io.IOException;
+import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;
@@ -37,6 +38,24 @@ import org.apache.hadoop.hbase.protobuf.generated.ErrorHandlingProtos.StackTrace
public final class ForeignExceptionUtil {
private ForeignExceptionUtil() { }
+ public static Exception toException(final ForeignExceptionMessage eem) {
+ final GenericExceptionMessage gem = eem.getGenericException();
+ final StackTraceElement[] trace = toStackTrace(gem.getTraceList());
+ try {
+ Class<?> realClass = Class.forName(gem.getClassName());
+ Class<? extends Exception> cls = realClass.asSubclass(Exception.class);
+ Constructor<? extends Exception> cn = cls.getConstructor(String.class);
+ cn.setAccessible(true);
+ Exception re = cn.newInstance(gem.getMessage());
+ re.setStackTrace(trace);
+ return re;
+ } catch (Throwable e) {
+ Exception re = new Exception(gem.getMessage());
+ re.setStackTrace(trace);
+ return re;
+ }
+ }
+
public static IOException toIOException(final ForeignExceptionMessage eem) {
GenericExceptionMessage gem = eem.getGenericException();
StackTraceElement[] trace = toStackTrace(gem.getTraceList());
http://git-wip-us.apache.org/repos/asf/hbase/blob/e637a61e/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
index 551a708..b640547 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureException.java
@@ -18,14 +18,13 @@
package org.apache.hadoop.hbase.procedure2;
-import java.io.IOException;
-
import org.apache.hadoop.hbase.classification.InterfaceAudience;
import org.apache.hadoop.hbase.classification.InterfaceStability;
+import org.apache.hadoop.hbase.exceptions.HBaseException;
@InterfaceAudience.Private
@InterfaceStability.Stable
-public class ProcedureException extends IOException {
+public class ProcedureException extends HBaseException {
/** default constructor */
public ProcedureException() {
super();
http://git-wip-us.apache.org/repos/asf/hbase/blob/e637a61e/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
----------------------------------------------------------------------
diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
index 71aae84..456f83d 100644
--- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
+++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/RemoteProcedureException.java
@@ -111,6 +111,6 @@ public class RemoteProcedureException extends ProcedureException {
}
public static RemoteProcedureException fromProto(final ForeignExceptionMessage eem) {
- return new RemoteProcedureException(eem.getSource(), ForeignExceptionUtil.toIOException(eem));
+ return new RemoteProcedureException(eem.getSource(), ForeignExceptionUtil.toException(eem));
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/e637a61e/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
index 2fbb559..0c38be7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/ServerCrashProcedure.java
@@ -300,10 +300,6 @@ implements ServerProcedureInterface {
default:
throw new UnsupportedOperationException("unhandled state=" + state);
}
- } catch (ProcedureYieldException e) {
- LOG.warn("Failed serverName=" + this.serverName + ", state=" + state + "; retry "
- + e.getMessage());
- throw e;
} catch (IOException e) {
LOG.warn("Failed serverName=" + this.serverName + ", state=" + state + "; retry", e);
} catch (InterruptedException e) {