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();
             }

Reply via email to