https://issues.apache.org/bugzilla/show_bug.cgi?id=46559

           Summary: org.apache.tools.zip.ZipFile leaves open file after
                    RuntimeException
           Product: Ant
           Version: unspecified
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core
        AssignedTo: [email protected]
        ReportedBy: [email protected]


When a corrupted zip is read the method "resolveLocalFileHeaderData()" will
throw a RuntimeException. This exception is never caught so the archive file is
never closed and remains opened.  The code calling constructor never gets a
handle on the object, so you can't close the archive.  The Archive remains open
until JVM exits.

    public ZipFile(File f, String encoding) throws IOException {
        this.encoding = encoding;
        archive = new RandomAccessFile(f, "r");
        try {
            populateFromCentralDirectory();
            resolveLocalFileHeaderData();
        } catch (IOException e) {
            try {
                archive.close();
            } catch (IOException e2) {
                // swallow, throw the original exception instead
            }
            throw e;
        }
    }


The RuntimeException stack
RuntimeException: data starting at 49679 is in unknown format
at org.apache.tools.zip.ZipEntry.setExtra(ZipEntry.java:268)
at org.apache.tools.zip.ZipFile.resolveLocalFileHeaderData(ZipFile.java:445)
at org.apache.tools.zip.ZipFile.<init>(ZipFile.java:144)
at org.apache.tools.zip.ZipFile.<init>(ZipFile.java:102)


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

Reply via email to