Author: jholmes
Date: Tue Aug 28 11:14:00 2007
New Revision: 570513

URL: http://svn.apache.org/viewvc?rev=570513&view=rev
Log:
WW-2142 input streams need to be explicitly closed

Modified:
    
struts/struts2/branches/STRUTS_2_0_X/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
    
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
    
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
    
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
    
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html
    struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html

Modified: 
struts/struts2/branches/STRUTS_2_0_X/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- 
struts/struts2/branches/STRUTS_2_0_X/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
 Tue Aug 28 11:14:00 2007
@@ -70,15 +70,23 @@
                 }
             }
             pageLines = read(in, -1);
+
+            if (in != null) {
+                in.close();
+            }
         }
 
         if (className != null && className.trim().length() > 0) {
-            className = "/"+className.replace('.', '/') + ".java";
+            className = "/" + className.replace('.', '/') + ".java";
             InputStream in = getClass().getResourceAsStream(className);
             if (in == null) {
                 in = 
servletContext.getResourceAsStream("/WEB-INF/src"+className);
             }
             classLines = read(in, -1);
+
+            if (in != null) {
+                in.close();
+            }
         }
 
         if (config != null && config.trim().length() > 0) {
@@ -118,8 +126,6 @@
         this.padding = padding;
     }
 
-
-
     /**
      * @return the classLines
      */
@@ -215,6 +221,4 @@
     public void setServletContext(ServletContext arg0) {
         this.servletContext = arg0;
     }
-
-
 }

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/components/template/BaseTemplateEngine.java
 Tue Aug 28 11:14:00 2007
@@ -52,7 +52,7 @@
             if (props == null) {
                 String propName = template.getDir() + "/" + 
template.getTheme() + "/"+getThemePropertiesFileName();
 
-//              WW-1292
+                // WW-1292
                 // let's try getting it from the filesystem
                 File propFile = new File(propName);
                 InputStream is = null;
@@ -77,6 +77,12 @@
                         props.load(is);
                     } catch (IOException e) {
                         LOG.error("Could not load " + propName, e);
+                    } finally {
+                        try {
+                            is.close();
+                        } catch(IOException io) {
+                            LOG.warn("Unable to close input stream", io);
+                        }
                     }
                 }
 

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/dispatcher/StreamResult.java
 Tue Aug 28 11:14:00 2007
@@ -33,7 +33,7 @@
 /**
  * <!-- START SNIPPET: description -->
  *
- * A custom Result type for send raw data (via an InputStream) directly to the
+ * A custom Result type for sending raw data (via an InputStream) directly to 
the
  * HttpServletResponse. Very useful for allowing users to download content.
  *
  * <!-- END SNIPPET: description -->

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/main/java/org/apache/struts2/views/freemarker/FreemarkerManager.java
 Tue Aug 28 11:14:00 2007
@@ -105,7 +105,7 @@
  */
 public class FreemarkerManager {
 
-    private static final Log log = LogFactory.getLog(FreemarkerManager.class);
+    private static final Log LOG = LogFactory.getLog(FreemarkerManager.class);
     public static final String CONFIG_SERVLET_CONTEXT_KEY = 
"freemarker.Configuration";
     public static final String KEY_EXCEPTION = "exception";
 
@@ -262,7 +262,7 @@
             try {
                 templatePathLoader = new FileTemplateLoader(new 
File(templatePath));
             } catch (IOException e) {
-                log.error("Invalid template path specified: " + 
e.getMessage(), e);
+                LOG.error("Invalid template path specified: " + 
e.getMessage(), e);
             }
         }
 
@@ -317,8 +317,10 @@
      * @see freemarker.template.Configuration#setSettings for the definition 
of valid settings
      */
     protected void loadSettings(ServletContext servletContext, 
freemarker.template.Configuration configuration) {
+        InputStream in = null;
+
         try {
-            InputStream in = FileManager.loadFile("freemarker.properties", 
FreemarkerManager.class);
+            in = FileManager.loadFile("freemarker.properties", 
FreemarkerManager.class);
 
             if (in != null) {
                 Properties p = new Properties();
@@ -326,9 +328,17 @@
                 configuration.setSettings(p);
             }
         } catch (IOException e) {
-            log.error("Error while loading freemarker settings from 
/freemarker.properties", e);
+            LOG.error("Error while loading freemarker settings from 
/freemarker.properties", e);
         } catch (TemplateException e) {
-            log.error("Error while loading freemarker settings from 
/freemarker.properties", e);
+            LOG.error("Error while loading freemarker settings from 
/freemarker.properties", e);
+        } finally {
+            if (in != null) {
+                try {
+                    in.close();
+                } catch(IOException io) {
+                    LOG.warn("Unable to close input stream", io);
+                }
+            }
         }
     }
 

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- 
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html
 (original)
+++ 
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/tabbedPanel.html
 Tue Aug 28 11:14:00 2007
@@ -327,7 +327,7 @@
                                        <td align="left" 
valign="top">useSelectedTabCookie</td>
                                        <td align="left" valign="top">false</td>
                                        <td align="left" valign="top">false</td>
-                                       <td align="left" valign="top">true</td>
+                                       <td align="left" valign="top">false</td>
                                        <td align="left" 
valign="top">String</td>
                                        <td align="left" valign="top">If set to 
true, the id of the last selected tab will be stored in cookie. If the view is 
rendered, it will be tried to read this cookie and activate the corresponding 
tab on success, unless overridden by the selectedTab attribute. The cookie name 
is "Struts2TabbedPanel_selectedTab_"+id.</td>
                                </tr>

Modified: 
struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html
URL: 
http://svn.apache.org/viewvc/struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html?rev=570513&r1=570512&r2=570513&view=diff
==============================================================================
--- struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html 
(original)
+++ struts/struts2/branches/STRUTS_2_0_X/core/src/site/resources/tags/url.html 
Tue Aug 28 11:14:00 2007
@@ -121,7 +121,7 @@
                                        <td align="left" valign="top"></td>
                                        <td align="left" valign="top">false</td>
                                        <td align="left" 
valign="top">String</td>
-                                       <td align="left" valign="top">Specifies 
if this should be a portlet render or action URL</td>
+                                       <td align="left" valign="top">Specifies 
if this should be a portlet render or action URL. Default is "render". To 
create an action URL, use "action".</td>
                                </tr>
                                <tr>
                                        <td align="left" 
valign="top">scheme</td>


Reply via email to