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/