From 17b3d6c0ba7639fd10f824e5920d15e5af2a8e57 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Fri, 1 Aug 2014 22:17:42 -0700 Subject: [PATCH] Emit HTTP status code inside handler methods Also remove bogus HTTP 500 internal errors which were sent after the response body. --- .../java/org/gaul/s3proxy/S3ProxyHandler.java | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java index 999bdbf..40a3a36 100644 --- a/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java +++ b/src/main/java/org/gaul/s3proxy/S3ProxyHandler.java @@ -94,7 +94,6 @@ final class S3ProxyHandler extends AbstractHandler { public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException { - int errorCode; String method = request.getMethod(); String uri = request.getRequestURI(); String[] path = uri.split("/", 3); @@ -126,10 +125,7 @@ final class S3ProxyHandler extends AbstractHandler { } case "GET": if (uri.equals("/")) { - errorCode = handleContainerList(response); - if (errorCode != HttpServletResponse.SC_OK) { - response.sendError(errorCode); - } + handleContainerList(response); baseRequest.setHandled(true); return; } else if (uri.lastIndexOf("/") == 0 && @@ -190,7 +186,7 @@ final class S3ProxyHandler extends AbstractHandler { } } - private int handleContainerAcl(HttpServletResponse response, + private void handleContainerAcl(HttpServletResponse response, String containerName) { try (Writer writer = response.getWriter()) { writer.write("\r\n" + @@ -212,12 +208,10 @@ final class S3ProxyHandler extends AbstractHandler { writer.flush(); } catch (IOException ioe) { logger.error("Error writing to client: {}", ioe.getMessage()); - return HttpServletResponse.SC_INTERNAL_SERVER_ERROR; } - return HttpServletResponse.SC_OK; } - private int handleContainerList(HttpServletResponse response) { + private void handleContainerList(HttpServletResponse response) { try (Writer writer = response.getWriter()) { writer.write("\r\n" + "\r\n" + @@ -247,9 +241,7 @@ final class S3ProxyHandler extends AbstractHandler { writer.flush(); } catch (IOException ioe) { logger.error("Error writing to client: {}", ioe.getMessage()); - return HttpServletResponse.SC_INTERNAL_SERVER_ERROR; } - return HttpServletResponse.SC_OK; } private void handleContainerExists(HttpServletResponse response, @@ -438,7 +430,6 @@ final class S3ProxyHandler extends AbstractHandler { } catch (IOException ioe) { logger.error("Error writing to client: {}", ioe.getMessage()); - response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } @@ -496,7 +487,6 @@ final class S3ProxyHandler extends AbstractHandler { os.flush(); } catch (IOException ioe) { logger.error("Error writing to client: {}", ioe.getMessage()); - response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } }