You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by cr...@apache.org on 2006/11/14 01:33:10 UTC

svn commit: r474604 - /shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java

Author: craigmcc
Date: Mon Nov 13 16:33:10 2006
New Revision: 474604

URL: http://svn.apache.org/viewvc?view=rev&rev=474604
Log:
Close parsed input streams, to avoid the potential for leaving JAR files
locked on Windows after an undeploy (as with SHALE-274).  Webapps will still
need a version of Digester newer than 1.7 for the Digester part of the fix.

Modified:
    shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java

Modified: shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java
URL: http://svn.apache.org/viewvc/shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java?view=diff&rev=474604&r1=474603&r2=474604
==============================================================================
--- shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java (original)
+++ shale/framework/trunk/shale-tiger/src/main/java/org/apache/shale/tiger/config/FacesConfigParser.java Mon Nov 13 16:33:10 2006
@@ -18,6 +18,7 @@
 package org.apache.shale.tiger.config;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
 import org.apache.commons.digester.Digester;
 import org.apache.commons.digester.RuleSet;
@@ -149,8 +150,24 @@
         digester.clear();
         digester.push(getFacesConfig());
         InputSource source = new InputSource(getResource().toExternalForm());
-        source.setByteStream(getResource().openStream());
-        digester.parse(source);
+        InputStream stream = null;
+        try {
+            stream = getResource().openStream();
+            source.setByteStream(stream);
+            digester.parse(source);
+        } catch (IOException e) {
+            throw e;
+        } catch (SAXException e) {
+            throw e;
+        } finally {
+            if (stream != null) {
+                try {
+                    stream.close();
+                } catch (IOException e) {
+                    ; // Fall through
+                }
+            }
+        }
 
     }