* 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<String, String> headers = new MultiValueTable<String, String>();
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);
}
}