diff options
author | jonmv <venstad@gmail.com> | 2023-06-12 09:50:07 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-06-12 09:50:07 +0200 |
commit | 989fd056a145aa15b1666628bd857443e0928600 (patch) | |
tree | 84fee1c68af3b87a254dd3f9b4a3c0602ccb1be6 | |
parent | 221bc016ff8ac18f5639dd663f6c5ef7109406fd (diff) |
Avoid closing stream prematurely
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); + } } } |