X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpage%2FPageToadlet.java;h=c515e5f41e777e8d08ca16a6188f3c55369be763;hp=c64f2d7a3a1ad96597dedbfa9fcfe2132945a0c5;hb=62573c314957b1851f4fbe693b8746686caa940a;hpb=419098bcd6215125408b29e60bd888e60979d37b diff --git a/src/main/java/net/pterodactylus/sone/web/page/PageToadlet.java b/src/main/java/net/pterodactylus/sone/web/page/PageToadlet.java index c64f2d7..c515e5f 100644 --- a/src/main/java/net/pterodactylus/sone/web/page/PageToadlet.java +++ b/src/main/java/net/pterodactylus/sone/web/page/PageToadlet.java @@ -1,5 +1,5 @@ /* - * Sone - PageToadlet.java - Copyright © 2010–2015 David Roden + * Sone - PageToadlet.java - Copyright © 2010–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.OutputStream; import java.net.URI; +import net.pterodactylus.sone.utils.AutoCloseableBucket; import net.pterodactylus.util.web.Header; import net.pterodactylus.util.web.Method; import net.pterodactylus.util.web.Page; @@ -33,14 +34,10 @@ import freenet.clients.http.Toadlet; import freenet.clients.http.ToadletContext; import freenet.clients.http.ToadletContextClosedException; import freenet.support.MultiValueTable; -import freenet.support.api.Bucket; import freenet.support.api.HTTPRequest; -import freenet.support.io.Closer; /** * {@link Toadlet} implementation that is wrapped around a {@link Page}. - * - * @author David ‘Bombe’ Roden */ public class PageToadlet extends Toadlet implements LinkEnabledCallback, LinkFilterExceptedToadlet { @@ -145,31 +142,18 @@ public class PageToadlet extends Toadlet implements LinkEnabledCallback, LinkFil * if the toadlet context is closed */ private void handleRequest(FreenetRequest pageRequest) throws IOException, ToadletContextClosedException { - Bucket pageBucket = null; - OutputStream pageBucketOutputStream = null; - Response pageResponse; - try { - pageBucket = pageRequest.getToadletContext().getBucketFactory().makeBucket(-1); - pageBucketOutputStream = pageBucket.getOutputStream(); - pageResponse = page.handleRequest(pageRequest, new Response(pageBucketOutputStream)); - } catch (IOException ioe1) { - Closer.close(pageBucket); - throw ioe1; - } finally { - Closer.close(pageBucketOutputStream); - } - MultiValueTable headers = new MultiValueTable(); - if (pageResponse.getHeaders() != null) { - for (Header header : pageResponse.getHeaders()) { - for (String value : header) { - headers.put(header.getName(), value); + try (AutoCloseableBucket pageBucket = new AutoCloseableBucket(pageRequest.getToadletContext().getBucketFactory().makeBucket(-1)); + OutputStream pageBucketOutputStream = pageBucket.getBucket().getOutputStream()) { + Response pageResponse = page.handleRequest(pageRequest, new Response(pageBucketOutputStream)); + MultiValueTable headers = new MultiValueTable(); + if (pageResponse.getHeaders() != null) { + for (Header header : pageResponse.getHeaders()) { + for (String value : header) { + headers.put(header.getName(), value); + } } } - } - try { - writeReply(pageRequest.getToadletContext(), pageResponse.getStatusCode(), pageResponse.getContentType(), pageResponse.getStatusText(), headers, pageBucket); - } finally { - Closer.close(pageBucket); + writeReply(pageRequest.getToadletContext(), pageResponse.getStatusCode(), pageResponse.getContentType(), pageResponse.getStatusText(), headers, pageBucket.getBucket()); } }