diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2023-06-12 10:06:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-12 10:06:05 +0200 |
commit | 0d4d246794356e4c2a1eeed9ee5ee4d63100a546 (patch) | |
tree | a5bd9b3eefd886bf8b60f5b3e0699bd440aaa54d /controller-server | |
parent | 77627c39d6d6c953723d58501f681c44a36af12f (diff) | |
parent | 989fd056a145aa15b1666628bd857443e0928600 (diff) |
Merge pull request #27370 from vespa-engine/jonmv/stream-packages-down
Avoid closing stream prematurely
Diffstat (limited to 'controller-server')
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); + } } } |