You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/11/07 06:40:28 UTC

[incubator-servicecomb-java-chassis] branch master updated (8465bdd -> dcd5491)

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

liubao pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git.


    from 8465bdd  [SCB-1007] not support CustomGeneric<Map<String,String>> : resolve locale problem
     new 079307e  [SCB-1012] add NoRouteToHostException in retry's exception
     new dcd5491  [SCB-1012] use static strictRetriable and use Arrays.asList()

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../loadbalance/DefaultRetryExtensionsFactory.java | 32 ++++++++++------------
 .../loadbalance/TestDefaultRetryhandler.java       | 14 ++++++++++
 2 files changed, 28 insertions(+), 18 deletions(-)


[incubator-servicecomb-java-chassis] 01/02: [SCB-1012] add NoRouteToHostException in retry's exception

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 079307e4dcf246bec3c71f4f9a78ffaa69f6dee0
Author: weichao666 <we...@huawei.com>
AuthorDate: Wed Nov 7 10:39:15 2018 +0800

    [SCB-1012] add NoRouteToHostException in retry's exception
---
 .../loadbalance/DefaultRetryExtensionsFactory.java         |  2 ++
 .../servicecomb/loadbalance/TestDefaultRetryhandler.java   | 14 ++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
index 7176d7a..05b99f7 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
@@ -18,6 +18,7 @@ package org.apache.servicecomb.loadbalance;
 
 import java.io.IOException;
 import java.net.ConnectException;
+import java.net.NoRouteToHostException;
 import java.net.SocketTimeoutException;
 import java.util.Collection;
 import java.util.List;
@@ -65,6 +66,7 @@ public class DefaultRetryExtensionsFactory implements ExtensionsFactory {
                */
               .put(IOException.class, Lists.newArrayList(new String[] {"Connection reset by peer"}))
               .put(VertxException.class, Lists.newArrayList(new String[] {"Connection was closed"}))
+              .put(NoRouteToHostException.class, Lists.newArrayList(new String[]{"Host is unreachable"}))
               .build();
 
       @Override
diff --git a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestDefaultRetryhandler.java b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestDefaultRetryhandler.java
index 8535a5a..99faf1e 100644
--- a/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestDefaultRetryhandler.java
+++ b/handlers/handler-loadbalance/src/test/java/org/apache/servicecomb/loadbalance/TestDefaultRetryhandler.java
@@ -19,6 +19,7 @@ package org.apache.servicecomb.loadbalance;
 
 import java.io.IOException;
 import java.net.ConnectException;
+import java.net.NoRouteToHostException;
 import java.net.SocketTimeoutException;
 
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
@@ -87,6 +88,19 @@ public class TestDefaultRetryhandler {
   }
 
   @Test
+  public void testRetryNoRouteToHostException() {
+    Exception target = new NoRouteToHostException("Host is unreachable");
+    Exception root = new Exception(target);
+    boolean retriable = retryHandler.isRetriableException(root, false);
+    Assert.assertTrue(retriable);
+
+    target = new NoRouteToHostException("Cannot assign requested address");
+    root = new Exception(target);
+    retriable = retryHandler.isRetriableException(root, false);
+    Assert.assertFalse(retriable);
+  }
+
+  @Test
   public void testRetryInvocation503() {
     Exception root = new InvocationException(503, "Service Unavailable", "Error");
     boolean retriable = retryHandler.isRetriableException(root, false);


[incubator-servicecomb-java-chassis] 02/02: [SCB-1012] use static strictRetriable and use Arrays.asList()

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit dcd5491c0c46b8af7899563cc9b9118da2f45bb6
Author: weichao666 <we...@huawei.com>
AuthorDate: Wed Nov 7 13:33:24 2018 +0800

    [SCB-1012] use static strictRetriable and use Arrays.asList()
---
 .../loadbalance/DefaultRetryExtensionsFactory.java | 32 +++++++++-------------
 1 file changed, 13 insertions(+), 19 deletions(-)

diff --git a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
index 05b99f7..f8ab374 100644
--- a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
+++ b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/DefaultRetryExtensionsFactory.java
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.net.ConnectException;
 import java.net.NoRouteToHostException;
 import java.net.SocketTimeoutException;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -45,6 +46,18 @@ public class DefaultRetryExtensionsFactory implements ExtensionsFactory {
   private static final Collection<String> ACCEPT_VALUES = Lists.newArrayList(
       RETRY_DEFAULT);
 
+  private static final Map<Class<? extends Throwable>, List<String>> strictRetriable =
+      ImmutableMap.<Class<? extends Throwable>, List<String>>builder()
+          .put(ConnectException.class, Arrays.asList())
+          .put(SocketTimeoutException.class, Arrays.asList())
+          /*
+           * deal with some special exceptions caused by the server side close the connection
+           */
+          .put(IOException.class, Arrays.asList(new String[] {"Connection reset by peer"}))
+          .put(VertxException.class, Arrays.asList(new String[] {"Connection was closed"}))
+          .put(NoRouteToHostException.class, Arrays.asList(new String[]{"Host is unreachable"}))
+          .build();
+
   @Override
   public boolean isSupport(String key, String value) {
     return ACCEPT_KEYS.contains(key) && ACCEPT_VALUES.contains(value);
@@ -54,20 +67,6 @@ public class DefaultRetryExtensionsFactory implements ExtensionsFactory {
     return new DefaultLoadBalancerRetryHandler(
         Configuration.INSTANCE.getRetryOnSame(microservice),
         Configuration.INSTANCE.getRetryOnNext(microservice), true) {
-      private List<Class<? extends Throwable>> retriable = Lists
-          .newArrayList(ConnectException.class, SocketTimeoutException.class);
-
-      Map<Class<? extends Throwable>, List<String>> strictRetriable =
-          ImmutableMap.<Class<? extends Throwable>, List<String>>builder()
-              .put(ConnectException.class, Lists.newArrayList())
-              .put(SocketTimeoutException.class, Lists.newArrayList())
-              /*
-               * deal with some special exceptions caused by the server side close the connection
-               */
-              .put(IOException.class, Lists.newArrayList(new String[] {"Connection reset by peer"}))
-              .put(VertxException.class, Lists.newArrayList(new String[] {"Connection was closed"}))
-              .put(NoRouteToHostException.class, Lists.newArrayList(new String[]{"Host is unreachable"}))
-              .build();
 
       @Override
       public boolean isRetriableException(Throwable e, boolean sameServer) {
@@ -82,11 +81,6 @@ public class DefaultRetryExtensionsFactory implements ExtensionsFactory {
         return retriable;
       }
 
-      @Override
-      protected List<Class<? extends Throwable>> getRetriableExceptions() {
-        return this.retriable;
-      }
-
       public boolean isPresentAsCause(Throwable throwableToSearchIn) {
         int infiniteLoopPreventionCounter = 10;
         while (throwableToSearchIn != null && infiniteLoopPreventionCounter > 0) {