Author: violetagg
Date: Fri Mar 15 13:57:19 2013
New Revision: 1456959

URL: http://svn.apache.org/r1456959
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54702
Close the stream at the end of the parse operation.

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1456959&r1=1456958&r2=1456959&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Fri Mar 15 
13:57:19 2013
@@ -1725,6 +1725,17 @@ public class ContextConfig implements Li
     }
 
 
+    /**
+     * Parses the given source and stores the parsed data in the given web.xml
+     * representation. The byte stream will be closed at the end of the parse
+     * operation.
+     *
+     * @param source Input source containing the XML data to be parsed
+     * @param dest The object representation of common elements of web.xml and
+     *             web-fragment.xml
+     * @param fragment Specifies whether the source is web-fragment.xml or
+     *                 web.xml
+     */
     protected void parseWebXml(InputSource source, WebXml dest,
             boolean fragment) {
 
@@ -1774,6 +1785,15 @@ public class ContextConfig implements Li
         } finally {
             digester.reset();
             ruleSet.recycle();
+
+            InputStream is = source.getByteStream();
+            if (is != null) {
+                try {
+                    is.close();
+                } catch (Throwable t) {
+                    ExceptionUtils.handleThrowable(t);
+                }
+            }
         }
     }
 
@@ -2517,13 +2537,6 @@ public class ContextConfig implements Li
                     parseWebXml(source, fragment, true);
                 }
             } finally {
-                if (is != null) {
-                    try {
-                        is.close();
-                    } catch (IOException ioe) {
-                        // Ignore
-                    }
-                }
                 if (jar != null) {
                     jar.close();
                 }
@@ -2563,13 +2576,6 @@ public class ContextConfig implements Li
                     parseWebXml(source, fragment, true);
                 }
             } finally {
-                if (stream != null) {
-                    try {
-                        stream.close();
-                    } catch (Throwable t) {
-                        ExceptionUtils.handleThrowable(t);
-                    }
-                }
                 fragment.setURL(file.toURI().toURL());
                 if (fragment.getName() == null) {
                     fragment.setName(fragment.getURL().toString());



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to