diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-04-12 11:50:07 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-04-12 12:13:36 +0200 |
commit | 19a436282c7b3d170091ad0046f0ea5a0715e882 (patch) | |
tree | 4df144d7459a3fe7d57ecd03c027d92c1781648a | |
parent | a48007cd102749c30a5662d751dff5d4bae76d06 (diff) |
Close response after reading its body >_<
4 files changed, 13 insertions, 9 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java index 42430cb7800..047953e4d4e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java @@ -19,8 +19,8 @@ public class LogRetriever { public HttpResponse getLogs(String logServerHostname) { HttpGet get = new HttpGet(logServerHostname); - try (CloseableHttpResponse response = httpClient.execute(get)) { - return new ProxyResponse(response); + try { + return new ProxyResponse(httpClient.execute(get)); } catch (IOException e) { return HttpErrorResponse.internalServerError("Failed to get logs: " + Exceptions.toMessageString(e)); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/ProxyResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/ProxyResponse.java index 9dc26f3a601..120790da3af 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/ProxyResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/ProxyResponse.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.http; import com.yahoo.container.jdisc.HttpResponse; import org.apache.http.Header; +import org.apache.http.client.methods.CloseableHttpResponse; import java.io.IOException; import java.io.OutputStream; @@ -16,9 +17,9 @@ import java.util.Optional; */ class ProxyResponse extends HttpResponse { - private final org.apache.http.HttpResponse clientResponse; + private final CloseableHttpResponse clientResponse; - ProxyResponse(org.apache.http.HttpResponse clientResponse) { + ProxyResponse(CloseableHttpResponse clientResponse) { super(clientResponse.getStatusLine().getStatusCode()); this.clientResponse = clientResponse; } @@ -32,6 +33,9 @@ class ProxyResponse extends HttpResponse { @Override public void render(OutputStream outputStream) throws IOException { - clientResponse.getEntity().writeTo(outputStream); + try (clientResponse) { + clientResponse.getEntity().writeTo(outputStream); + } } + } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java index cf4ecc4d53c..6b888014051 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java @@ -63,8 +63,8 @@ public class SecretStoreValidator { var data = uncheck(() -> SlimeUtils.toJsonBytes(slime)); var entity = new ByteArrayEntity(data); postRequest.setEntity(entity); - try (CloseableHttpResponse response = httpClient.execute(postRequest)) { - return new ProxyResponse(response); + try { + return new ProxyResponse(httpClient.execute(postRequest)); } catch (IOException e) { return HttpErrorResponse.internalServerError( String.format("Failed to post request to %s: %s", uri, Exceptions.toMessageString(e)) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java index 6dce7a3eccb..4292a0806c2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java @@ -66,8 +66,8 @@ public class TesterClient { private HttpResponse execute(HttpUriRequest request, String messageIfRequestFails) { logger.log(Level.FINE, "Sending request to tester container " + request.getURI().toString()); - try (CloseableHttpResponse response = httpClient.execute(request)) { - return new ProxyResponse(response); + try { + return new ProxyResponse(httpClient.execute(request)); } catch (IOException e) { logger.warning(messageIfRequestFails + ": " + Exceptions.toMessageString(e)); return HttpErrorResponse.internalServerError(Exceptions.toMessageString(e)); |