diff options
author | Håkon Hallingstad <hakon@oath.com> | 2017-10-12 11:05:53 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2017-10-12 11:05:53 +0200 |
commit | c858b25501592337ff575baf3eb3f445f6e2778d (patch) | |
tree | e4fe144b22929e2ea4ace0db714a280b43963bfc /jaxrs_client_utils | |
parent | eb92ec91d4ddcaf25ffd8a08e73addd8846d7ad8 (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.java | 8 |
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; |