bodewig 2005/05/13 01:09:35 Modified: . Tag: ANT_16_BRANCH WHATSNEW src/main/org/apache/tools/ant/taskdefs Tag: ANT_16_BRANCH Untar.java src/main/org/apache/tools/zip Tag: ANT_16_BRANCH ZipFile.java Log: merge Revision Changes Path No revision No revision 1.503.2.226 +3 -0 ant/WHATSNEW Index: WHATSNEW =================================================================== RCS file: /home/cvs/ant/WHATSNEW,v retrieving revision 1.503.2.225 retrieving revision 1.503.2.226 diff -u -r1.503.2.225 -r1.503.2.226 --- WHATSNEW 11 May 2005 19:37:30 -0000 1.503.2.225 +++ WHATSNEW 13 May 2005 08:09:35 -0000 1.503.2.226 @@ -21,6 +21,9 @@ * Granularity attribute for <sync> task was undocumented. Bugzilla report 34871. +* <unzip> and <untar> could leave file handles open on invalid + archives. Bugzilla report 34893. + Other changes: -------------- No revision No revision 1.37.2.6 +9 -3 ant/src/main/org/apache/tools/ant/taskdefs/Untar.java Index: Untar.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Untar.java,v retrieving revision 1.37.2.5 retrieving revision 1.37.2.6 diff -u -r1.37.2.5 -r1.37.2.6 --- Untar.java 6 Jan 2005 17:50:46 -0000 1.37.2.5 +++ Untar.java 13 May 2005 08:09:35 -0000 1.37.2.6 @@ -88,13 +88,13 @@ * @see Expand#expandFile(FileUtils, File, File) */ protected void expandFile(FileUtils fileUtils, File srcF, File dir) { + FileInputStream fis = null; TarInputStream tis = null; try { log("Expanding: " + srcF + " into " + dir, Project.MSG_INFO); + fis = new FileInputStream(srcF); tis = new TarInputStream( - compression.decompress(srcF, - new BufferedInputStream( - new FileInputStream(srcF)))); + compression.decompress(srcF, new BufferedInputStream(fis))); TarEntry te = null; while ((te = tis.getNextEntry()) != null) { @@ -113,6 +113,12 @@ } catch (IOException e) { // ignore } + } else if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + // ignore + } } } } No revision No revision 1.8.2.7 +11 -2 ant/src/main/org/apache/tools/zip/ZipFile.java Index: ZipFile.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/zip/ZipFile.java,v retrieving revision 1.8.2.6 retrieving revision 1.8.2.7 diff -u -r1.8.2.6 -r1.8.2.7 --- ZipFile.java 9 Mar 2005 18:56:27 -0000 1.8.2.6 +++ ZipFile.java 13 May 2005 08:09:35 -0000 1.8.2.7 @@ -138,8 +138,17 @@ public ZipFile(File f, String encoding) throws IOException { this.encoding = encoding; archive = new RandomAccessFile(f, "r"); - populateFromCentralDirectory(); - resolveLocalFileHeaderData(); + try { + populateFromCentralDirectory(); + resolveLocalFileHeaderData(); + } catch (IOException e) { + try { + archive.close(); + } catch (IOException e2) { + // swallow, throw the original exception instead + } + throw e; + } } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]