diff --git a/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/MarathonInstanceDiscovery.java b/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/MarathonInstanceDiscovery.java index b7ef7ff..b3358c7 100644 --- a/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/MarathonInstanceDiscovery.java +++ b/breakerbox-turbine/src/main/java/com/yammer/breakerbox/turbine/MarathonInstanceDiscovery.java @@ -48,11 +48,17 @@ private void constructMarathonClientConfigurationBuilderMap() { public Collection getInstanceList() throws Exception { List instances = new ArrayList<>(); marathonClientConfigurationBuilderMap.entrySet().parallelStream().forEach(entry -> { - Response response = entry.getValue().get(); - if(response.getStatus() == HttpStatus.SC_OK) { - instances.addAll(createServiceInstanceList(response.readEntity(String.class), entry.getKey())); + Response response = null; + try { + response = entry.getValue().get(); + if (response.getStatus() == HttpStatus.SC_OK) { + instances.addAll(createServiceInstanceList(response.readEntity(String.class), entry.getKey())); + } + } finally { + if (response != null) { + response.close(); + } } - response.close(); }); return instances; } @@ -80,9 +86,7 @@ public List createServiceInstanceList(String marathonApiResponse,Marat List tasks = marathonClientResponse.getApp().getTasks(); int finalPortIndex = portIndex; - List instances = tasks.stream() - .map(task -> new Instance(task.getHost() + ":" + task.getPorts().get(finalPortIndex), marathonClientConfiguration.getCluster(), true)).collect(Collectors.toList()); - return instances; + return tasks.stream().map(task -> new Instance(task.getHost() + ":" + task.getPorts().get(finalPortIndex), marathonClientConfiguration.getCluster(), true)).collect(Collectors.toList()); } else { LOGGER.error("tasks not available for the given namespace"); return Collections.emptyList();