Hi!

This patch (in general) enables MT-safe use of ZipFile (e.g. call getEntry() 
from several threads).

Also, this patch contains the following patch ("Detect encryption.patch") by 
Daniel Noll (the patch is necessary to verbosely filter out "encrypted zip" 
case, the patch included mostly in the original form except for I only put the 
detection code inside the synchronized block): 
http://gcc.gnu.org/bugzilla/attachment.cgi?id=15833

ChangeLog entries:
        * java/util/zip/ZipEntry.java:
        (generalPurposeFlags): New private field (used for "encrypted" flag
        only).
        (getDOSTime()): Adjust/add parenthesis to make the expression more
        readable.
        (setGeneralPurposeFlags(int)): New package-private method (used by
        ZipFile only).
        (isEncrypted()): Likewise.
        * java/util/zip/ZipFile.java:
        (checkZipFile()): Put the name of the file to the thrown exception
        message.
        (readEntries()): Invoke setGeneralPurposeFlags().
        (finalize()): Comment out (since the only system resource used is
        freed by "raf" finalizer).
        (entries()): Remove unnecessary checkClosed() invocation (since it
        is performed in getEntries()).
        (getEntry(String)): Likewise.
        (size()): Likewise.
        (getInputStream(ZipEntry)): Check for encrypted entry (and throw the
        exception with the appropriate message).
        (getInputStream(ZipEntry)): Inline getEntries() call and put
        checkClosed(), readEntries(), entries.get(), new PartialInputStream()
        inside a single synchronized block.

Attachment: classpath-ivmai-30.diff
Description: Binary data

Reply via email to