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);
