                        

              Apache Commons Compress 1.1 RELEASE NOTES

Release 1.1

Changes in this version include:

New features:
o COMPRESS-108:  Command-line interface to list archive contents.
       Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc] 
o COMPRESS-109:  Tar implementation does not support Pax headers
       Added support for reading pax headers.
       Note: does not support global pax headers 
o COMPRESS-103:  ZipArchiveInputStream can optionally extract data that used
        the STORED compression method and a data descriptor.
        Doing so in a stream is not safe in general, so you have to
        explicitly enable the feature.  By default the stream will
        throw an exception if it encounters such an entry. 
o COMPRESS-98:  The ZIP classes will throw specialized exceptions if any
        attempt is made to read or write data that uses zip features
        not supported (yet). 
o COMPRESS-99:  ZipFile#getEntries returns entries in a predictable order -
        the order they appear inside the central directory.
        A new method getEntriesInPhysicalOrder returns entries in
        order of the entry data, i.e. the order ZipArchiveInputStream
        would see. 
o The Archive*Stream and ZipFile classes now have
        can(Read|Write)EntryData methods that can be used to check
        whether a given entry's data can be read/written.
        The method currently returns false for ZIP archives if an
        entry uses an unsupported compression method or encryption. 
o COMPRESS-89:  The ZIP classes now detect encrypted entries. 
o COMPRESS-97:  Added autodetection of compression format to
        CompressorStreamFactory. 
o COMPRESS-95:  Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann. 
o A new constructor of TarArchiveEntry can create entries with
        names that start with slashes - the default is to strip
        leading slashes in order to create relative path names. 
o ArchiveEntry now has a getLastModifiedDate method. 
o COMPRESS-78:  Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting. 

Fixed Bugs:
o COMPRESS-72:  Move acknowledgements from NOTICE to README 
o COMPRESS-113:  TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size 
o COMPRESS-118:  TarUtils.parseName does not properly handle characters outside the range 0-127 
o COMPRESS-107:  ArchiveStreamFactory does not recognise tar files created by Ant 
o COMPRESS-110:  Support "ustar" prefix field, which is used when file paths are longer
       than 100 characters. 
o COMPRESS-100:  ZipArchiveInputStream will throw an exception if it detects an
        entry that uses a data descriptor for a STORED entry since it
        cannot reliably find the end of data for this "compression"
        method. 
o COMPRESS-101:  ZipArchiveInputStream should now properly read archives that
        use data descriptors but without the "unofficial" signature. 
o COMPRESS-74:  ZipArchiveInputStream failed to update the number of bytes
        read properly. 
o ArchiveInputStream has a new method getBytesRead that should
        be preferred over getCount since the later may truncate the
        number of bytes read for big archives. 
o COMPRESS-85:  The cpio archives created by CpioArchiveOutputStream couldn't
        be read by many existing native implementations because the
        archives contained multiple entries with the same inode/device
        combinations and weren't padded to a blocksize of 512 bytes. 
o COMPRESS-73:  ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
        more lenient when parsing extra fields. 
o COMPRESS-82:  cpio is terribly slow.
        Documented that buffered streams are needed for performance 
o Improved exception message if the extra field data in ZIP
        archives cannot be parsed. 
o COMPRESS-17:  Tar format unspecified - current support documented. 
o COMPRESS-94:  ZipArchiveEntry's equals method was broken for entries created
        with the String-arg constructor.  This lead to broken ZIP
        archives if two different entries had the same hash code. Thanks to Anon Devs. 
o COMPRESS-87:  ZipArchiveInputStream could repeatedly return 0 on read() when
        the archive was truncated. Thanks to Antoni Mylka. 
o COMPRESS-86:  Tar archive entries holding the file name for names longer
        than 100 characters in GNU longfile mode didn't properly
        specify they'd be using the "oldgnu" extension. 
o COMPRESS-83:  Delegate all read and write methods in GZip stream in order to
        speed up operations. 
o The ar and cpio streams now properly read and write last
        modified times. 
o COMPRESS-81:  TarOutputStream can leave garbage at the end of the archive 

Changes:
o COMPRESS-112:  ArArchiveInputStream does not handle GNU extended filename records (//) 
o COMPRESS-105:  Document that the name of an ZipArchiveEntry determines whether
       an entry is considered a directory or not.
       If you don't use the constructor with the File argument the entry's
        name must end in a "/" in order for the entry to be known as a directory. 
o COMPRESS-79:  Move DOS/Java time conversions into Zip utility class. 
o COMPRESS-75:  ZipArchiveInputStream does not show location in file where a problem occurred. 

 
For complete information on Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:

http://commons.apache.org/compress/


