You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by jk...@apache.org on 2006/06/17 00:03:44 UTC

svn commit: r414940 - in /ant/core/trunk: CONTRIBUTORS WHATSNEW src/main/org/apache/tools/ant/taskdefs/Manifest.java

Author: jkf
Date: Fri Jun 16 15:03:43 2006
New Revision: 414940

URL: http://svn.apache.org/viewvc?rev=414940&view=rev
Log:
Closing some streams in Manifest, patch kindly provided by John Sisson.

Modified:
    ant/core/trunk/CONTRIBUTORS
    ant/core/trunk/WHATSNEW
    ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java

Modified: ant/core/trunk/CONTRIBUTORS
URL: http://svn.apache.org/viewvc/ant/core/trunk/CONTRIBUTORS?rev=414940&r1=414939&r2=414940&view=diff
==============================================================================
Binary files - no diff available.

Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=414940&r1=414939&r2=414940&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Fri Jun 16 15:03:43 2006
@@ -94,6 +94,8 @@
 
 Fixed bugs:
 -----------
+* <manifest> now closes the inputstream explicitly. Bug report 39628
+
 * <rpm> now also correctly searches the first element of the path. Bug report 39345.
 
 * ant.bat now handles classpath set to "". Bug report 38914. 

Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java?rev=414940&r1=414939&r2=414940&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/Manifest.java Fri Jun 16 15:03:43 2006
@@ -29,6 +29,7 @@
 import java.util.Hashtable;
 import java.util.Vector;
 import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.util.FileUtils;
 
 /**
  * Holds the data of a jar manifest.
@@ -698,28 +699,34 @@
      *            default manifest
      */
     public static Manifest getDefaultManifest() throws BuildException {
+        InputStream in = null;
+        InputStreamReader insr = null;
         try {
             String defManifest = "/org/apache/tools/ant/defaultManifest.mf";
-            InputStream in = Manifest.class.getResourceAsStream(defManifest);
+            in = Manifest.class.getResourceAsStream(defManifest);
             if (in == null) {
                 throw new BuildException("Could not find default manifest: "
                     + defManifest);
             }
             try {
-                Manifest defaultManifest
-                    = new Manifest(new InputStreamReader(in, "UTF-8"));
+                insr = new InputStreamReader(in, "UTF-8");
+                Manifest defaultManifest = new Manifest(insr);
                 Attribute createdBy = new Attribute("Created-By",
                     System.getProperty("java.vm.version") + " ("
                     + System.getProperty("java.vm.vendor") + ")");
                 defaultManifest.getMainSection().storeAttribute(createdBy);
                 return defaultManifest;
             } catch (UnsupportedEncodingException e) {
-                return new Manifest(new InputStreamReader(in));
+                insr = new InputStreamReader(in);
+                return new Manifest(insr);
             }
         } catch (ManifestException e) {
             throw new BuildException("Default manifest is invalid !!", e);
         } catch (IOException e) {
             throw new BuildException("Unable to read default manifest", e);
+        } finally {
+            FileUtils.close(insr);
+            FileUtils.close(in);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org
For additional commands, e-mail: dev-help@ant.apache.org