From ce6d286d706b1af34fcbe03257aa32e7c6b68399 Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Wed, 29 Apr 2015 22:20:10 -0600 Subject: [PATCH] Don't execute load balancer twice fixes gh-323 --- .../ribbon/RibbonClientHttpRequestFactory.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java index dac71e75..4347d193 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonClientHttpRequestFactory.java @@ -108,14 +108,20 @@ public class RibbonClientHttpRequestFactory implements ClientHttpRequestFactory @Override protected ClientHttpResponse executeInternal(HttpHeaders headers) throws IOException { - // use execute here so stats are collected - return loadBalancer.execute(this.config.getClientName(), new LoadBalancerRequest() { + try { + HttpResponse response = client.execute(request, config); + return new RibbonHttpResponse(response); + } catch (Exception e) { + throw new IOException(e); + } + + //TODO: fix stats, now that execute is not called + // use execute here so stats are collected + /*return loadBalancer.execute(this.config.getClientName(), new LoadBalancerRequest() { @Override public ClientHttpResponse apply(ServiceInstance instance) throws Exception { - HttpResponse response = client.execute(request, config); - return new RibbonHttpResponse(response); } - }); + });*/ } }