diff --git a/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClient.java b/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClient.java index 5d1d0bbf..fec843f5 100644 --- a/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClient.java +++ b/spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/KubernetesDiscoveryClient.java @@ -94,7 +94,7 @@ public class KubernetesDiscoveryClient implements DiscoveryClient { "[Assertion failed] - the object argument must be null"); Endpoints endpoints = client.endpoints().withName(serviceId).get(); - List subsets = null != endpoints ? endpoints.getSubsets() : new ArrayList<>(); + List subsets = getSubsetsFromEndpoints(endpoints); List instances = new ArrayList<>(); if (!subsets.isEmpty()) { @@ -156,6 +156,17 @@ public class KubernetesDiscoveryClient implements DiscoveryClient { return instances; } + private List getSubsetsFromEndpoints(Endpoints endpoints) { + if (endpoints == null) { + return new ArrayList<>(); + } + if (endpoints.getSubsets() == null) { + return new ArrayList<>(); + } + + return endpoints.getSubsets(); + } + // returns a new map that contain all the entries of the original map // but with the keys prefixed // if the prefix is null or empty, the map itself is returned (unchanged of course)