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 077e790e..dac71e75 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 @@ -60,6 +60,9 @@ public class RibbonClientHttpRequestFactory implements ClientHttpRequestFactory throws IOException { String serviceId = originalUri.getHost(); ServiceInstance instance = loadBalancer.choose(serviceId); + if (instance == null) { + throw new IllegalStateException("No instances available for "+serviceId); + } URI uri = loadBalancer.reconstructURI(instance, originalUri); //@formatter:off IClientConfig clientConfig = clientFactory.getClientConfig(instance.getServiceId()); diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java index 92f5d534..ac1b36f8 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/ribbon/RibbonLoadBalancerClient.java @@ -23,6 +23,7 @@ import org.springframework.cloud.client.DefaultServiceInstance; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.client.loadbalancer.LoadBalancerRequest; +import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; import com.netflix.loadbalancer.ILoadBalancer; @@ -44,6 +45,7 @@ public class RibbonLoadBalancerClient implements LoadBalancerClient { @Override public URI reconstructURI(ServiceInstance instance, URI original) { + Assert.notNull(instance, "instance can not be null"); String serviceId = instance.getServiceId(); RibbonLoadBalancerContext context = this.clientFactory .getLoadBalancerContext(serviceId);