summaryrefslogtreecommitdiffstats
path: root/jaxrs_client_utils
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2017-10-12 11:05:53 +0200
committerHåkon Hallingstad <hakon@oath.com>2017-10-12 11:05:53 +0200
commitc858b25501592337ff575baf3eb3f445f6e2778d (patch)
treee4fe144b22929e2ea4ace0db714a280b43963bfc /jaxrs_client_utils
parenteb92ec91d4ddcaf25ffd8a08e73addd8846d7ad8 (diff)
Pick hosts randomized in RetryingJaxRsStrategy
Diffstat (limited to 'jaxrs_client_utils')
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
index 2e6cbdd466d..a73297780c6 100644
--- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
+++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/RetryingJaxRsStrategy.java
@@ -5,6 +5,9 @@ import com.yahoo.vespa.applicationmodel.HostName;
import javax.ws.rs.ProcessingException;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
@@ -20,7 +23,7 @@ public class RetryingJaxRsStrategy<T> implements JaxRsStrategy<T> {
private static final Logger logger = Logger.getLogger(RetryingJaxRsStrategy.class.getName());
private static final int NUM_LOOP_ATTEMPTS = 2;
- private final Set<HostName> hostNames;
+ private final List<HostName> hostNames;
private final int port;
private final JaxRsClientFactory jaxRsClientFactory;
private final Class<T> apiClass;
@@ -38,7 +41,8 @@ public class RetryingJaxRsStrategy<T> implements JaxRsStrategy<T> {
Objects.requireNonNull(jaxRsClientFactory, "jaxRsClientFactory argument may not be null");
Objects.requireNonNull(apiClass, "apiClass argument may not be null");
Objects.requireNonNull(pathPrefix, "pathPrefix argument may not be null");
- this.hostNames = hostNames;
+ this.hostNames = new ArrayList<>(hostNames);
+ Collections.shuffle(this.hostNames);
this.port = port;
this.jaxRsClientFactory = jaxRsClientFactory;
this.apiClass = apiClass;