summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2023-06-12 10:06:05 +0200
committerGitHub <noreply@github.com>2023-06-12 10:06:05 +0200
commit0d4d246794356e4c2a1eeed9ee5ee4d63100a546 (patch)
treea5bd9b3eefd886bf8b60f5b3e0699bd440aaa54d /controller-server
parent77627c39d6d6c953723d58501f681c44a36af12f (diff)
parent989fd056a145aa15b1666628bd857443e0928600 (diff)
Merge pull request #27370 from vespa-engine/jonmv/stream-packages-down
Avoid closing stream prematurely
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java15
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ZipResponse.java4
2 files changed, 6 insertions, 13 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index bead0663316..cc5438e9ed0 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -986,12 +986,8 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
private HttpResponse devApplicationPackage(ApplicationId id, JobType type) {
ZoneId zone = type.zone();
RevisionId revision = controller.jobController().last(id, type).get().versions().targetRevision();
- try (InputStream applicationPackage = controller.applications().applicationStore().stream(new DeploymentId(id, zone), revision)) {
- return new ZipResponse(id.toFullString() + "." + zone.value() + ".zip", applicationPackage);
- }
- catch (IOException e) {
- throw new UncheckedIOException(e);
- }
+ return new ZipResponse(id.toFullString() + "." + zone.value() + ".zip",
+ controller.applications().applicationStore().stream(new DeploymentId(id, zone), revision));
}
private HttpResponse devApplicationPackageDiff(RunId runId) {
@@ -1028,12 +1024,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
InputStream applicationPackage = tests ?
controller.applications().applicationStore().streamTester(tenantAndApplication.tenant(), tenantAndApplication.application(), revision) :
controller.applications().applicationStore().stream(new DeploymentId(tenantAndApplication.defaultInstance(), ZoneId.defaultId()), revision);
- try (applicationPackage) {
- return new ZipResponse(filename, applicationPackage);
- }
- catch (IOException e) {
- throw new UncheckedIOException(e);
- }
+ return new ZipResponse(filename, applicationPackage);
}
private HttpResponse applicationPackageDiff(String tenant, String application, String number) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ZipResponse.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ZipResponse.java
index 5262d36ef11..f45ef49402b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ZipResponse.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ZipResponse.java
@@ -29,7 +29,9 @@ public class ZipResponse extends HttpResponse {
@Override
public void render(OutputStream outputStream) throws IOException {
- zipContent.transferTo(outputStream);
+ try (zipContent) {
+ zipContent.transferTo(outputStream);
+ }
}
}