You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2019/08/12 08:14:59 UTC

[hbase] branch branch-2 updated: HBASE-22699 refactor isMetaClearingException (#436)

This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch branch-2
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2 by this push:
     new cc6e157  HBASE-22699 refactor isMetaClearingException (#436)
cc6e157 is described below

commit cc6e157112248abf0c3f6b48d482e3f1b8107641
Author: johnhomsea <51...@qq.com>
AuthorDate: Mon Aug 12 15:57:21 2019 +0800

    HBASE-22699 refactor isMetaClearingException (#436)
    
    Signed-off-by: Duo Zhang <zh...@apache.org>
---
 .../hbase/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 6b1e251..1975297 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 java.util.concurrent.TimeoutException;
 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 final class ClientExceptionsUtil {
     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 final class ClientExceptionsUtil {
     }
     Throwable cur = (Throwable) exception;
     while (cur != null) {
-      if (isSpecialException(cur)) {
+      if (matchExceptionWeCare(cur)) {
         return cur;
       }
       if (cur instanceof RemoteException) {
@@ -95,7 +99,7 @@ public final class ClientExceptionsUtil {
         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;