This is an automated email from the ASF dual-hosted git repository. mbien pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/roller.git
commit 4a41c06cae2a8d8deba4fd3c22b8c24d8c87de85 Author: Michael Bien <mbie...@gmail.com> AuthorDate: Sat May 22 07:05:43 2021 +0200 close input stream + use InputStream.transferTo(). --- .../rendering/servlets/PreviewResourceServlet.java | 24 ++++++++-------------- .../ui/rendering/servlets/ResourceServlet.java | 23 ++++++++------------- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java index d0f6a8f..7103bea 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/PreviewResourceServlet.java @@ -20,7 +20,6 @@ package org.apache.roller.weblogger.ui.rendering.servlets; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; @@ -30,7 +29,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.roller.util.RollerConstants; import org.apache.roller.weblogger.WebloggerException; import org.apache.roller.weblogger.business.MediaFileManager; import org.apache.roller.weblogger.business.WebloggerFactory; @@ -50,7 +48,7 @@ import org.apache.roller.weblogger.ui.rendering.util.WeblogPreviewResourceReques */ public class PreviewResourceServlet extends HttpServlet { - private static Log log = LogFactory.getLog(PreviewResourceServlet.class); + private static final Log log = LogFactory.getLog(PreviewResourceServlet.class); private ServletContext context = null; @@ -123,6 +121,9 @@ public class PreviewResourceServlet extends HttpServlet { } catch (Exception ex) { // hmmm, some kind of error getting theme. that's an error. response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + if(resourceStream != null) { + resourceStream.close(); + } return; } } @@ -141,6 +142,9 @@ public class PreviewResourceServlet extends HttpServlet { // still not found? then we don't have it, 404. log.debug("Unable to get resource", ex); response.sendError(HttpServletResponse.SC_NOT_FOUND); + if(resourceStream != null) { + resourceStream.close(); + } return; } } @@ -159,21 +163,11 @@ public class PreviewResourceServlet extends HttpServlet { response.setContentType(this.context.getMimeType(resourceRequest .getResourcePath())); - OutputStream out; try { // ok, lets serve up the file - byte[] buf = new byte[RollerConstants.EIGHT_KB_IN_BYTES]; - int length; - out = response.getOutputStream(); - while ((length = resourceStream.read(buf)) > 0) { - out.write(buf, 0, length); - } - - // cleanup - out.close(); - resourceStream.close(); + resourceStream.transferTo(response.getOutputStream()); - } catch (Exception ex) { + } catch (IOException ex) { log.error("Error writing resource file", ex); if (!response.isCommitted()) { response.reset(); diff --git a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java index e4f1f38..8dbd5db 100644 --- a/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java +++ b/app/src/main/java/org/apache/roller/weblogger/ui/rendering/servlets/ResourceServlet.java @@ -20,7 +20,6 @@ package org.apache.roller.weblogger.ui.rendering.servlets; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; @@ -31,7 +30,6 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.roller.util.RollerConstants; import org.apache.roller.weblogger.WebloggerException; import org.apache.roller.weblogger.business.MediaFileManager; import org.apache.roller.weblogger.business.WebloggerFactory; @@ -50,7 +48,7 @@ public class ResourceServlet extends HttpServlet { private static final long serialVersionUID = 1350679411381917714L; - private static Log log = LogFactory.getLog(ResourceServlet.class); + private static final Log log = LogFactory.getLog(ResourceServlet.class); private ServletContext context = null; @@ -120,6 +118,9 @@ public class ResourceServlet extends HttpServlet { response.reset(); } response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + if(resourceStream != null) { + resourceStream.close(); + } return; } @@ -140,6 +141,9 @@ public class ResourceServlet extends HttpServlet { } log.debug("Unable to get resource", ex); response.sendError(HttpServletResponse.SC_NOT_FOUND); + if(resourceStream != null) { + resourceStream.close(); + } return; } } @@ -158,20 +162,11 @@ public class ResourceServlet extends HttpServlet { response.setContentType(this.context.getMimeType(resourceRequest .getResourcePath())); - OutputStream out; try { // ok, lets serve up the file - byte[] buf = new byte[RollerConstants.EIGHT_KB_IN_BYTES]; - int length; - out = response.getOutputStream(); - while ((length = resourceStream.read(buf)) > 0) { - out.write(buf, 0, length); - } + resourceStream.transferTo(response.getOutputStream()); - // close output stream - out.close(); - - } catch (Exception ex) { + } catch (IOException ex) { if (!response.isCommitted()) { response.reset(); }