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

[hbase] branch branch-2.2 updated: Revert "HBASE-22699 refactor isMetaClearingException (#436)"

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

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


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

commit 748e5946f61f105448d8acf99fc87fb0f361ba79
Author: stack <st...@apache.org>
AuthorDate: Mon Aug 12 11:19:10 2019 -0700

    Revert "HBASE-22699 refactor isMetaClearingException (#436)"
    
    This reverts commit 0a98df3a3424124eef5389a13686f118d4ab4cad.
---
 .../hbase/exceptions/ClientExceptionsUtil.java     | 26 +++++++++-------------
 1 file changed, 11 insertions(+), 15 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 1975297..6b1e251 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,6 +32,7 @@ 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;
@@ -58,23 +59,18 @@ public final class ClientExceptionsUtil {
     if (cur == null) {
       return true;
     }
-    return !regionDefinitelyOnTheRegionServerException(cur);
+    return !isSpecialException(cur) || (cur instanceof RegionMovedException)
+        || cur instanceof NotServingRegionException;
   }
 
-  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);
+  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);
   }
 
-  /**
-   * 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:
@@ -91,7 +87,7 @@ public final class ClientExceptionsUtil {
     }
     Throwable cur = (Throwable) exception;
     while (cur != null) {
-      if (matchExceptionWeCare(cur)) {
+      if (isSpecialException(cur)) {
         return cur;
       }
       if (cur instanceof RemoteException) {
@@ -99,7 +95,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;