You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2006/09/20 20:35:43 UTC

svn commit: r448295 - /myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java

Author: mmarinschek
Date: Wed Sep 20 11:35:43 2006
New Revision: 448295

URL: http://svn.apache.org/viewvc?view=rev&rev=448295
Log:
fix for TOMAHAWK-668 input stream not closed in MyFacesResourceLoader.writeResource. Thanks to Mike Youngstrom (I applied only one half of the patch; I allow the response stream to be closed still).

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java?view=diff&rev=448295&r1=448294&r2=448295
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/renderkit/html/util/MyFacesResourceLoader.java Wed Sep 20 11:35:43 2006
@@ -96,7 +96,7 @@
      * which define the mime content-type; this is deduced from the
      * filename suffix of the resource.
      * <p>
-     * @see org.apache.myfaces.shared.renderkit.html.util.ResourceLoader#serveResource(javax.servlet.ServletContext,
+     * @see org.apache.myfaces.renderkit.html.util.ResourceLoader#serveResource(javax.servlet.ServletContext,
      *     javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
     public void serveResource(ServletContext context, HttpServletRequest request,
@@ -133,22 +133,32 @@
         }
         resource = "resource/" + resource;
 
-        InputStream is = componentClass.getResourceAsStream(resource);
-        if (is == null)
+        InputStream is = null;
+
+        try
         {
-            response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unable to find resource "
-                    + resource + " for component " + component
-                    + ". Check that this file is available " + "in the classpath in sub-directory "
-                    + "/resource of the package-directory.");
-            log.error("Unable to find resource " + resource + " for component " + component
-                    + ". Check that this file is available " + "in the classpath in sub-directory "
-                    + "/resource of the package-directory.");
+            is = componentClass.getResourceAsStream(resource);
+            if (is == null)
+            {
+                response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unable to find resource "
+                        + resource + " for component " + component
+                        + ". Check that this file is available " + "in the classpath in sub-directory "
+                        + "/resource of the package-directory.");
+                log.error("Unable to find resource " + resource + " for component " + component
+                        + ". Check that this file is available " + "in the classpath in sub-directory "
+                        + "/resource of the package-directory.");
+            }
+            else
+            {
+                defineContentHeaders(request, response, resource);
+                defineCaching(request, response, resource);
+                writeResource(request, response, is);
+            }
         }
-        else
+        finally
         {
-            defineContentHeaders(request, response, resource);
-            defineCaching(request, response, resource);
-            writeResource(request, response, is);
+            if(is!=null)
+                is.close();            
         }
     }