From a0d5627a333e05e28ee3bac4861f21ffadf909fb Mon Sep 17 00:00:00 2001 From: johnhomsea <517536891@qq.com> Date: Mon, 12 Aug 2019 15:57:21 +0800 Subject: [PATCH] HBASE-22699 refactor isMetaClearingException (#436) Signed-off-by: Duo Zhang --- .../exceptions/ClientExceptionsUtil.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java index 6b1e251953b9..1975297dd218 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/exceptions/ClientExceptionsUtil.java @@ -32,7 +32,6 @@ import org.apache.hadoop.hbase.CallDroppedException; import org.apache.hadoop.hbase.CallQueueTooBigException; import org.apache.hadoop.hbase.DoNotRetryIOException; -import org.apache.hadoop.hbase.MultiActionResultTooLarge; import org.apache.hadoop.hbase.NotServingRegionException; import org.apache.hadoop.hbase.RegionTooBusyException; import org.apache.hadoop.hbase.RetryImmediatelyException; @@ -59,18 +58,23 @@ public static boolean isMetaClearingException(Throwable cur) { if (cur == null) { return true; } - return !isSpecialException(cur) || (cur instanceof RegionMovedException) - || cur instanceof NotServingRegionException; + return !regionDefinitelyOnTheRegionServerException(cur); } - public static boolean isSpecialException(Throwable cur) { - return (cur instanceof RegionMovedException || cur instanceof RegionOpeningException - || cur instanceof RegionTooBusyException || cur instanceof RpcThrottlingException - || cur instanceof MultiActionResultTooLarge || cur instanceof RetryImmediatelyException - || cur instanceof CallQueueTooBigException || cur instanceof CallDroppedException - || cur instanceof NotServingRegionException || cur instanceof RequestTooBigException); + private static boolean regionDefinitelyOnTheRegionServerException(Throwable t) { + return (t instanceof RegionTooBusyException || t instanceof RpcThrottlingException + || t instanceof RetryImmediatelyException || t instanceof CallQueueTooBigException + || t instanceof CallDroppedException || t instanceof NotServingRegionException + || t instanceof RequestTooBigException); } + /** + * This function is the alias of regionDefinitelyOnTheRegionServerException, + * whose name is confusing in the function findException(). + */ + private static boolean matchExceptionWeCare(Throwable t) { + return regionDefinitelyOnTheRegionServerException(t); + } /** * Look for an exception we know in the remote exception: @@ -87,7 +91,7 @@ public static Throwable findException(Object exception) { } Throwable cur = (Throwable) exception; while (cur != null) { - if (isSpecialException(cur)) { + if (matchExceptionWeCare(cur)) { return cur; } if (cur instanceof RemoteException) { @@ -95,7 +99,7 @@ public static Throwable findException(Object exception) { cur = re.unwrapRemoteException(); // unwrapRemoteException can return the exception given as a parameter when it cannot - // unwrap it. In this case, there is no need to look further + // unwrap it. In this case, there is no need to look further // noinspection ObjectEquality if (cur == re) { return cur;