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 <[email protected]>
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);

Reply via email to