Author: bodewig Date: Thu Dec 29 16:38:37 2016 New Revision: 17616 Log: RC1 of Compress 1.13 has been accepted
Added: release/commons/compress/binaries/commons-compress-1.13-bin.tar.gz - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz release/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.asc - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.asc release/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.md5 - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.md5 release/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.sha1 - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.sha1 release/commons/compress/binaries/commons-compress-1.13-bin.zip - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.zip release/commons/compress/binaries/commons-compress-1.13-bin.zip.asc - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.zip.asc release/commons/compress/binaries/commons-compress-1.13-bin.zip.md5 - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.zip.md5 release/commons/compress/binaries/commons-compress-1.13-bin.zip.sha1 - copied unchanged from r17615, dev/commons/compress/binaries/commons-compress-1.13-bin.zip.sha1 release/commons/compress/source/commons-compress-1.13-src.tar.gz - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.tar.gz release/commons/compress/source/commons-compress-1.13-src.tar.gz.asc - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.tar.gz.asc release/commons/compress/source/commons-compress-1.13-src.tar.gz.md5 - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.tar.gz.md5 release/commons/compress/source/commons-compress-1.13-src.tar.gz.sha1 - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.tar.gz.sha1 release/commons/compress/source/commons-compress-1.13-src.zip - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.zip release/commons/compress/source/commons-compress-1.13-src.zip.asc - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.zip.asc release/commons/compress/source/commons-compress-1.13-src.zip.md5 - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.zip.md5 release/commons/compress/source/commons-compress-1.13-src.zip.sha1 - copied unchanged from r17615, dev/commons/compress/source/commons-compress-1.13-src.zip.sha1 Removed: dev/commons/compress/RELEASE-NOTES.txt dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.asc dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.md5 dev/commons/compress/binaries/commons-compress-1.13-bin.tar.gz.sha1 dev/commons/compress/binaries/commons-compress-1.13-bin.zip dev/commons/compress/binaries/commons-compress-1.13-bin.zip.asc dev/commons/compress/binaries/commons-compress-1.13-bin.zip.md5 dev/commons/compress/binaries/commons-compress-1.13-bin.zip.sha1 dev/commons/compress/source/commons-compress-1.13-src.tar.gz dev/commons/compress/source/commons-compress-1.13-src.tar.gz.asc dev/commons/compress/source/commons-compress-1.13-src.tar.gz.md5 dev/commons/compress/source/commons-compress-1.13-src.tar.gz.sha1 dev/commons/compress/source/commons-compress-1.13-src.zip dev/commons/compress/source/commons-compress-1.13-src.zip.asc dev/commons/compress/source/commons-compress-1.13-src.zip.md5 dev/commons/compress/source/commons-compress-1.13-src.zip.sha1 Modified: release/commons/compress/RELEASE-NOTES.txt Modified: release/commons/compress/RELEASE-NOTES.txt ============================================================================== --- release/commons/compress/RELEASE-NOTES.txt (original) +++ release/commons/compress/RELEASE-NOTES.txt Thu Dec 29 16:38:37 2016 @@ -5,761 +5,55 @@ compression and archive formats. These lzma, xz, Snappy, traditional Unix Compress, DEFLATE and ar, cpio, jar, tar, zip, dump, 7z, arj. -Release 1.12 +Release 1.13 ------------ -Commons Compress 1.12 is the first version to require Java6 at +Commons Compress 1.13 is the first version to require Java 7 at runtime. -Release 1.12 changes the behavior of BZip2CompressorOutputStream's -finalize method so that it no longer invokes finish. This is going to -break code that relied on the finalizer to clean up an unfinished -stream. The code will need to be changed to call finish or close -itself. Note that a finalizer is not guaranteed to run, so the feature -was not 100% effective in any case. - -New features: - -o FramedSnappyCompressorInputStream now supports the dialect of - Snappy used by the IWA files contained within the zip archives - used in Apple's iWork 13 files. - Issue: COMPRESS-352. - -Fixed Bugs: - -o SevenZFile.read() throws an IllegalStateException for empty entries. - Issue: COMPRESS-348. -o TarArchiveInputStream failed to parse PAX headers that included - blank lines. - Issue: COMPRESS-355. Thanks to Jeremy Gustie. -o TarArchiveInputStream failed to parse PAX headers whose tar entry - name ended with a slash. - Issue: COMPRESS-356. Thanks to Jeremy Gustie. - -Changes: -o Update requirement from Java 5 to 6. - Issue: COMPRESS-349. -o TarArchiveEntry wastefully allocates empty arrays. - Issue: COMPRESS-350. -o Javadoc for BZip2CompressorInputStream(InputStream, boolean) should - refer to IOEx, not NPE. - Issue: COMPRESS-353. -o PureJavaCrc32C in the snappy package is now final so it is now safe - to call a virtual method inside the constructor. - Issue: COMPRESS-354. - -o ZipArchiveInputStream and CpioArchiveInputStream could throw - exceptions who's messages contained potentially corrupt entry names - read from a broken archive. They will now sanitize the names by - replacing unprintable characters and restricting the length to 255 - characters. - Issue: COMPRESS-351. -o BZip2CompressorOutputStream no longer tries to finish the output - stream in finalize. This is a breaking change for code that relied - on the finalizer. - Issue: COMPRESS-357. - - -Release 1.11 ------------- - -New features: -o TarArchiveInputStream now supports reading global PAX headers. - Issue: COMPRESS-347. -o The PAX headers for sparse entries written by star are now - applied. - Issue: COMPRESS-346. -o GNU sparse files using one of the PAX formats are now - detected, but cannot be extracted. - Issue: COMPRESS-345. -o New method SevenZFile.getEntries can be used to list the - contents of a 7z archive. - Issue: COMPRESS-341. -o When using Zip64Mode.Always also use ZIP64 extensions inside - the central directory. - GitHub Pull Request #10 Thanks to Matt Hovey. -o ZipFile.getRawInputStream() is now part of the public API - Issue: COMPRESS-323. -o Allow byte-for-byte replication of Zip entries. - GitHub Pull Request #6. Thanks to Jason van Zyl. -o TarArchiveEntry's preserveLeadingSlashes is now a property and used - on later calls to setName, too. - This behavior is a breaking change. - Issue: COMPRESS-328. -o Added read-only support for bzip2 compression used inside of - ZIP archives. - GitHub Pull Request #4. Thanks to Sören Glimm. - -Fixed Bugs: -o ArArchiveInputStream can now read GNU extended names that are - terminated with a NUL byte rather than a linefeed. - Issue: COMPRESS-344. -o Native Memory Leak in Sevenz-DeflateDecoder. - Issue: COMPRESS-343. Thanks to Rene Preissel. -o SevenZFile will now only try to drain an entry's content when - moving on to the next entry if data is read from the next - entry. This should improve performance for applications that - try to skip over entries. - Issue: COMPRESS-340. Thanks to Dawid Weiss. -o file names of tar archives using the xstar format are now - parsed properly. - Issue: COMPRESS-336. -o checksums of tars that pad the checksum field to the left are - now calculated properly. - Issue: COMPRESS-335. -o ArArchiveInputStream failed to read past the first entry when - BSD long names have been used. - Issue: COMPRESS-334. Thanks to Jeremy Gustie. -o Added buffering for random access which speeds up 7Z support. - Issue: COMPRESS-333. Thanks to Dawid Weiss. -o The checksum validation of TararchiveEntry is now as strict as - the validation of GNU tar, which eliminates a few cases of - false positives of ArchiveStreamFactory. - This behavior is a breaking change since the check has become - more strict but any archive that fails the checksum test now - would also fail it when extracted with other tools and must be - considered an invalid archive. - Issue: COMPRESS-331. -o SnappyCompressorInputStream and - FramedSnappyCompressorInputStream returned 0 at the end of the - stream under certain circumstances. - Issue: COMPRESS-332. -o Adjusted unit test to updates in Java8 and later that change - the logic of ZipEntry#getTime. - Issue: COMPRESS-326. -o TarArchiveOutputStream will now recognize GNU long name and - link entries even if the special entry has a different name - than GNU tar uses itself. This seems to be the case for - archives created by star. - Issue: COMPRESS-324. -o ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra - fields are read from the central directory. - Issue: COMPRESS-321. - -Release 1.10 ------------- - -Release 1.10 moves the former -org.apache.commons.compress.compressors.z._internal_ package which -breaks backwards compatibility for code which used the old package. - -This also changes the superclass of ZCompressorInputStream which makes -this class binary incompatible with the one of Compress 1.9. Code -that extends ZCompressorInputStream will need to be recompiled in -order to work with Compress 1.10. - -New features: -o CompressorStreamFactory can now auto-detect DEFLATE streams - with ZLIB header. - Issue: COMPRESS-316. Thanks to Nick Burch. -o CompressorStreamFactory can now auto-detect LZMA streams. - Issue: COMPRESS-313. -o Added support for parallel compression. This low-level API allows - a client to build a zip/jar file by using the class - org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator. - - Zip documentation updated with further notes about parallel features. - - Please note that some aspects of jar creation need to be - handled by client code and is not part of commons-compress for this - release. - Issue: COMPRESS-296. Thanks to Kristian Rosenvold. -o Cut overall object instantiation in half by changing file - header generation algorithm, for a 10-15 percent performance - improvement. - - Also extracted two private methods createLocalFileHeader - and createCentralFileHeader in ZipArchiveOutputStream. - These may have some interesting additional usages in the - near future. Thanks to Kristian Rosenvold. -o New methods in ZipArchiveOutputStream and ZipFile allows - entries to be copied from one archive to another without - having to re-compress them. - Issue: COMPRESS-295. Thanks to Kristian Rosenvold. - -Fixed Bugs: -o TarArchiveInputStream can now read entries with group or - user ids > 0x80000000. - Issue: COMPRESS-314. -o TarArchiveOutputStream can now write entries with group or - user ids > 0x80000000. - Issue: COMPRESS-315. -o TarArchiveEntry's constructor with a File and a String arg - didn't normalize the name. - Issue: COMPRESS-312. -o ZipEncodingHelper no longer reads system properties directly - to determine the default charset. - Issue: COMPRESS-308. -o BZip2CompressorInputStream#read would return -1 when asked to - read 0 bytes. - Issue: COMPRESS-309. -o ArchiveStreamFactory fails to pass on the encoding when creating - some streams. - * ArjArchiveInputStream - * CpioArchiveInputStream - * DumpArchiveInputStream - * JarArchiveInputStream - * TarArchiveInputStream - * JarArchiveOutputStream - Issue: COMPRESS-306. -o Restore immutability/thread-safety to ArchiveStreamFactory. - The class is now immutable provided that the method setEntryEncoding - is not used. The class is thread-safe. - Issue: COMPRESS-302. -o Restore immutability/thread-safety to CompressorStreamFactory. - The class is now immutable provided that the method - setDecompressConcatenated is not used. The class is thread-safe. - Issue: COMPRESS-303. -o ZipFile logs a warning in its finalizer when its constructor - has thrown an exception reading the file - for example if the - file doesn't exist. - Issue: COMPRESS-297. -o Improved error message when tar encounters a groupId that is - too big to write without using the STAR or POSIX format. - Issue: COMPRESS-290. Thanks to Kristian Rosenvold. -o SevenZFile now throws the specific PasswordRequiredException - when it encounters an encrypted stream but no password has - been specified. - Issue: COMPRESS-298. - -Changes: -o Moved the package - org.apache.commons.compress.compressors.z._internal_ to - org.apache.commons.compress.compressors.lzw and made it part - of the API that is officially supported. This will break - existing code that uses the old package. Thanks to Damjan Jovanovic. - -For complete information on Apache 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/ - -Old Release Notes -================= - -Release 1.9 ------------ - -New features: -o Added support for DEFLATE streams without any gzip framing. - Issue: COMPRESS-263. - Thanks to Matthias Stevens. - -Fixed Bugs: -o When reading 7z files unknown file properties and properties of type - kDummy are now ignored. - Issue: COMPRESS-287. -o Expanding 7z archives using LZMA compression could cause an - EOFException. - Issue: COMPRESS-286. -o Long-Name and -link or PAX-header entries in TAR archives always had - the current time as last modfication time, creating archives that - are different at the byte level each time an archive was built. - Issue: COMPRESS-289. - Thanks to Bob Robertson. - -Changes: -o Checking for XZ for Java may be expensive. The result will now be - cached outside of an OSGi environment. You can use the new - XZUtils#setCacheXZAvailability to overrride this default behavior. - Issue: COMPRESS-285. - -Release 1.8.1 -------------- - -New features: -o COMPRESS-272: CompressorStreamFactory can now auto-detect Unix compress - (".Z") streams. - -Fixed Bugs: -o COMPRESS-270: The snappy, ar and tar inputstreams might fail to read from a - non-buffered stream in certain cases. -o COMPRESS-277: IOUtils#skip might skip fewer bytes than requested even though - more could be read from the stream. -o COMPRESS-276: ArchiveStreams now validate there is a current entry before - reading or writing entry data. -o ArjArchiveInputStream#canReadEntryData tested the current - entry of the stream rather than its argument. -o COMPRESS-274: ChangeSet#delete and deleteDir now properly deal with unnamed - entries. -o COMPRESS-273: Added a few null checks to improve robustness. -o COMPRESS-278: TarArchiveInputStream failed to read archives with empty - gid/uid fields. -o COMPRESS-279: TarArchiveInputStream now again throws an exception when it - encounters a truncated archive while reading from the last - entry. -o COMPRESS-280: Adapted TarArchiveInputStream#skip to the modified - IOUtils#skip method. Thanks to BELUGA BEHR. - -Changes: -o The dependency on org.tukaani:xz is now marked as optional. - -Release 1.8 ------------ - -New features: -o GzipCompressorInputStream now provides access to the same - metadata that can be provided via GzipParameters when writing - a gzip stream. - Issue: COMPRESS-260. -o SevenZOutputFile now supports chaining multiple - compression/encryption/filter methods and passing options to - the methods. - Issue: COMPRESS-266. -o The (compression) method(s) can now be specified per entry in - SevenZOutputFile. - Issue: COMPRESS-261. -o SevenZArchiveEntry "knows" which method(s) have been used to - write it to the archive. - Issue: COMPRESS-258. -o The 7z package now supports the delta filter as method. -o The 7z package now supports BCJ filters for several platforms. - You will need a version >= 1.5 of XZ for Java to read archives - using BCJ, though. - Issue: COMPRESS-257. - -Fixed Bugs: -o BZip2CompressorInputStream read fewer bytes than possible from - a truncated stream. - Issue: COMPRESS-253. -o SevenZFile failed claiming the dictionary was too large when - archives used LZMA compression for headers and content and - certain non-default dictionary sizes. - Issue: COMPRESS-253. -o CompressorStreamFactory.createCompressorInputStream with - explicit compression did not honor decompressConcatenated - Issue: COMPRESS-259. -o TarArchiveInputStream will now read archives created by tar - implementations that encode big numbers by not adding a - trailing NUL. - Issue: COMPRESS-262. -o ZipArchiveInputStream would return NUL bytes for the first 512 - bytes of a STORED entry if it was the very first entry of the - archive. - Issue: COMPRESS-264. -o When writing PAX/POSIX headers for TAR entries with - backslashes or certain non-ASCII characters in their name - TarArchiveOutputStream could fail. - Issue: COMPRESS-265. -o ArchiveStreamFactory now throws a StreamingNotSupported - a - new subclass of ArchiveException - if it is asked to read from - or write to a stream and Commons Compress doesn't support - streaming for the format. This currently only applies to the - 7z format. - Issue: COMPRESS-267. - -Release 1.7 ------------ - -New features: -o Read-Only support for Snappy compression. - Issue: COMPRESS-147. Thanks to BELUGA BEHR. -o Read-Only support for .Z compressed files. - Issue: COMPRESS-243. Thanks to Damjan Jovanovic. -o ZipFile and ZipArchiveInputStream now support reading entries - compressed using the SHRINKING method. Thanks to Damjan Jovanovic. -o GzipCompressorOutputStream now supports setting the compression - level and the header metadata (filename, comment, modification time, - operating system and extra flags) - Issue: COMPRESS-250. Thanks to Emmanuel Bourg. -o ZipFile and ZipArchiveInputStream now support reading entries - compressed using the IMPLODE method. - Issue: COMPRESS-115. Thanks to Emmanuel Bourg. -o ZipFile and the 7z file classes now implement Closeable and can be - used in try-with-resources constructs. - -Fixed Bugs: -o SevenZOutputFile#closeArchiveEntry throws an exception when using - LZMA2 compression on Java8. Issue: COMPRESS-241. -o 7z reading of big 64bit values could be wrong. - Issue: COMPRESS-244. Thanks to Nico Kruber. -o TarArchiveInputStream could fail to read an archive completely. - Issue: COMPRESS-245. -o The time-setters in X5455_ExtendedTimestamp now set the - corresponding flags explicitly - i.e. they set the bit if the valus - is not-null and reset it otherwise. This may cause - incompatibilities if you use setFlags to unset a bit and later set - the time to a non-null value - the flag will now be set. - Issue: COMPRESS-242. -o SevenZOutputFile would create invalid archives if more than six - empty files or directories were included. Issue: COMPRESS-252. - -Release 1.6 ------------ - -Version 1.6 introduces changes to the internal API of the tar package that -break backwards compatibility in the following rare cases. This version -removes the package private TarBuffer class along with the protected "buffer" -members in TarArchiveInputStream and TarArchiveOutputStream. This change will -only affect you if you have created a subclass of one of the stream classes -and accessed the buffer member or directly used the TarBuffer class. - -Changes in this version include: - -New features: -o Added support for 7z archives. Most compression algorithms - can be read and written, LZMA and encryption are only - supported when reading. Issue: COMPRESS-54. Thanks to Damjan Jovanovic. -o Added read-only support for ARJ archives that don't use - compression. Issue: COMPRESS-226. Thanks to Damjan Jovanovic. -o DumpArchiveInputStream now supports an encoding parameter that - can be used to specify the encoding of file names. -o The CPIO streams now support an encoding parameter that can be - used to specify the encoding of file names. -o Read-only support for LZMA standalone compression has been added. - Issue: COMPRESS-111. - -Fixed Bugs: -o TarBuffer.tryToConsumeSecondEOFRecord could throw a - NullPointerException Issue: COMPRESS-223. Thanks to Jeremy Gustie. -o Parsing of zip64 extra fields has become more lenient in order - to be able to read archives created by DotNetZip and maybe - other archivers as well. Issue: COMPRESS-228. -o TAR will now properly read the names of symbolic links with - long names that use the GNU variant to specify the long file - name. Issue: COMPRESS-229. Thanks to Christoph Gysin. -o ZipFile#getInputStream could return null if the archive - contained duplicate entries. - The class now also provides two new methods to obtain all - entries of a given name rather than just the first one. - Issue: COMPRESS-227. -o CpioArchiveInputStream failed to read archives created by - Redline RPM. Issue: COMPRESS-236. Thanks to Andrew Duffy. -o TarArchiveOutputStream now properly handles link names that - are too long to fit into a traditional TAR header. Issue: - COMPRESS-237. Thanks to Emmanuel Bourg. -o The auto-detecting create*InputStream methods of Archive and - CompressorStreamFactory could fail to detect the format of - blocking input streams. Issue: COMPRESS-239. - -Changes: -o Readabilty patch to TarArchiveInputStream. Issue: - COMPRESS-232. Thanks to BELUGA BEHR. -o Performance improvements to TarArchiveInputStream, in - particular to the skip method. Issue: COMPRESS-234. Thanks to - BELUGA BEHR. - -Release 1.5 ------------ - -New features: - -o CompressorStreamFactory has an option to create decompressing - streams that decompress the full input for formats that support - multiple concatenated streams. - Issue: COMPRESS-220. - -Fixed Bugs: - -o Typo in CompressorStreamFactory Javadoc - Issue: COMPRESS-218. - Thanks to Gili. -o ArchiveStreamFactory's tar stream detection created false positives - for AIFF files. - Issue: COMPRESS-191. - Thanks to Jukka Zitting. -o XZ for Java didn't provide an OSGi bundle. Compress' dependency on - it has now been marked optional so Compress itself can still be used - in an OSGi context. - Issue: COMPRESS-199. - Thanks to Jukka Zitting. -o When specifying the encoding explicitly TarArchiveOutputStream would - write unreadable names in GNU mode or even cause errors in POSIX - mode for file names longer than 66 characters. - Issue: COMPRESS-200. - Thanks to Christian Schlichtherle. -o Writing TAR PAX headers failed if the generated entry name ended - with a "/". - Issue: COMPRESS-203. -o ZipArchiveInputStream sometimes failed to provide input to the - Inflater when it needed it, leading to reads returning 0. - Issue: COMPRESS-189. - Thanks to Daniel Lowe. -o TarArchiveInputStream ignored the encoding for GNU long name - entries. - Issue: COMPRESS-212. -o TarArchiveInputStream could leave the second EOF record inside the - stream it had just finished reading. - Issue: COMPRESS-206. - Thanks to Peter De Maeyer. -o DumpArchiveInputStream no longer implicitly closes the original - input stream when it reaches the end of the archive. -o ZipArchiveInputStream now consumes the remainder of the archive when - getNextZipEntry returns null. -o Unit tests could fail if the source tree was checked out to a - directory tree containign spaces. - Issue: COMPRESS-205. - Thanks to Daniel Lowe. -o Fixed a potential ArrayIndexOutOfBoundsException when reading STORED - entries from ZipArchiveInputStream. - Issue: COMPRESS-219. -o CompressorStreamFactory can now be used without XZ for Java being - available. - Issue: COMPRESS-221. - -Changes: - -o Improved exception message if a zip archive cannot be read because - of an unsupported compression method. - Issue: COMPRESS-188. - Thanks to Harald Kuhn. -o ArchiveStreamFactory has a setting for file name encoding that sets - up encoding for ZIP and TAR streams. - Issue: COMPRESS-192. - Thanks to Jukka Zitting. -o TarArchiveEntry now has a method to verify its checksum. - Issue: COMPRESS-191. - Thanks to Jukka Zitting. -o Split/spanned ZIP archives are now properly detected by - ArchiveStreamFactory but will cause an - UnsupportedZipFeatureException when read. -o ZipArchiveInputStream now reads archives that start with a "PK00" - signature. Archives with this signatures are created when the - archiver was willing to split the archive but in the end only needed - a single segment - so didn't split anything. - Issue: COMPRESS-208. -o TarArchiveEntry has a new constructor that allows setting linkFlag - and preserveLeadingSlashes at the same time. - Issue: COMPRESS-201. -o ChangeSetPerformer has a new perform overload that uses a ZipFile - instance as input. - Issue: COMPRESS-159. -o Garbage collection pressure has been reduced by reusing temporary - byte arrays in classes. - Issue: COMPRESS-172. - Thanks to Thomas Mair. -o Can now handle zip extra field 0x5455 - Extended Timestamp. - Issue: COMPRESS-210. - Thanks to Julius Davies. -o handle zip extra field 0x7875 - Info Zip New Unix Extra Field. - Issue: COMPRESS-211. - Thanks to Julius Davies. -o ZipShort, ZipLong, ZipEightByteInteger should implement Serializable - Issue: COMPRESS-213. - Thanks to Julius Davies. -o better support for unix symlinks in ZipFile entries. - Issue: COMPRESS-214. - Thanks to Julius Davies. -o ZipFile's initialization has been improved for non-Zip64 archives. - Issue: COMPRESS-215. - Thanks to Robin Power. -o Updated XZ for Java dependency to 1.2 as this version provides - proper OSGi manifest attributes. - -Release 1.4.1 -------------- - -This is a security bugfix release, see -http://commons.apache.org/proper/commons-compress/security.html#Fixed_in_Apache_Commons_Compress_1.4.1 - -Fixed Bugs: - -o Ported libbzip2's fallback sort algorithm to - BZip2CompressorOutputStream to speed up compression in certain - edge cases. - -Release 1.4 ------------ - -New features: -o COMPRESS-156: Support for the XZ format has been added. - -Fixed Bugs: -o COMPRESS-183: The tar package now allows the encoding of file names to be - specified and can optionally use PAX extension headers to - write non-ASCII file names. - The stream classes now write (or expect to read) archives that - use the platform's native encoding for file names. Apache - Commons Compress 1.3 used to strip everything but the lower - eight bits of each character which effectively only worked for - ASCII and ISO-8859-1 file names. - This new default behavior is a breaking change. -o COMPRESS-184: TarArchiveInputStream failed to parse PAX headers that - contained non-ASCII characters. -o COMPRESS-178: TarArchiveInputStream throws IllegalArgumentException instead of IOException -o COMPRESS-179: TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long -o COMPRESS-175: GNU Tar sometimes uses binary encoding for UID and GID -o COMPRESS-171: ArchiveStreamFactory.createArchiveInputStream would claim - short text files were TAR archives. -o COMPRESS-164: ZipFile didn't work properly for archives using unicode extra - fields rather than UTF-8 filenames and the EFS-Flag. -o COMPRESS-169: For corrupt archives ZipFile would throw a RuntimeException in - some cases and an IOException in others. It will now - consistently throw an IOException. - -Changes: -o COMPRESS-182: The tar package can now write archives that use star/GNU/BSD - extensions or use the POSIX/PAX variant to store numeric - values that don't fit into the traditional header fields. -o COMPRESS-181: Added a workaround for a Bug some tar implementations that add - a NUL byte as first byte in numeric header fields. -o COMPRESS-176: Added a workaround for a Bug in WinZIP which uses backslashes - as path separators in Unicode Extra Fields. -o COMPRESS-131: ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed. -o COMPRESS-146: BZip2CompressorInputStream now optionally supports reading of - concatenated .bz2 files. -o COMPRESS-154: GZipCompressorInputStream now optionally supports reading of - concatenated .gz files. -o COMPRESS-16: The tar package can now read archives that use star/GNU/BSD - extensions for files that are longer than 8 GByte as well as - archives that use the POSIX/PAX variant. -o COMPRESS-165: The tar package can now write archives that use star/GNU/BSD - extensions for files that are longer than 8 GByte as well as - archives that use the POSIX/PAX variant. -o COMPRESS-166: The tar package can now use the POSIX/PAX variant for writing - entries with names longer than 100 characters. - -Release 1.3 ------------ - -Commons Compress 1.3 is the first version to require Java5 at runtime. - Changes in this version include: New features: -o Support for the Pack200 format has been added. Issue: COMPRESS-142. -o Read-only support for the format used by the Unix dump(8) tool - has been added. Issue: COMPRESS-132. - -Fixed Bugs: -o BZip2CompressorInputStream's getBytesRead method always - returned 0. -o ZipArchiveInputStream and ZipArchiveOutputStream could leak - resources on some JDKs. Issue: COMPRESS-152. -o TarArchiveOutputStream's getBytesWritten method didn't count - correctly. Issue: COMPRESS-160. - -Changes: -o The ZIP package now supports Zip64 extensions. Issue: COMPRESS-36. -o The AR package now supports the BSD dialect of storing file - names longer than 16 chars (both reading and writing). - Issue: COMPRESS-144. - -Release 1.2 ------------ - -New features: -o COMPRESS-123: ZipArchiveEntry has a new method getRawName that provides the - original bytes that made up the name. This may allow user - code to detect the encoding. -o COMPRESS-122: TarArchiveEntry provides access to the flags that determine - whether it is an archived symbolic link, pipe or other - "uncommon" file system object. - -Fixed Bugs: -o COMPRESS-129: ZipArchiveInputStream could fail with a "Truncated ZIP" error - message for entries between 2 GByte and 4 GByte in size. -o COMPRESS-145: TarArchiveInputStream now detects sparse entries using the - oldgnu format and properly reports it cannot extract their - contents. -o COMPRESS-130: The Javadoc for ZipArchiveInputStream#skip now matches the - implementation, the code has been made more defensive. -o COMPRESS-140: ArArchiveInputStream fails if entries contain only blanks for - userId or groupId. Thanks to Trejkaz. -o COMPRESS-139: ZipFile may leak resources on some JDKs. -o COMPRESS-125: BZip2CompressorInputStream throws IOException if - underlying stream returns available() == 0. - Removed the check. -o COMPRESS-127: Calling close() on inputStream returned by - CompressorStreamFactory.createCompressorInputStream() - does not close the underlying input stream. -o COMPRESS-119: TarArchiveOutputStream#finish now writes all buffered - data to the stream - -Changes: -o ZipFile now implements finalize which closes the underlying - file. -o COMPRESS-117: Certain tar files not recognised by - ArchiveStreamFactory. - -Release 1.1 ------------ - -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. +o SevenZFile, SevenZOutputFile, ZipFile and + ZipArchiveOutputStream can now work on non-file resources if + they can be accessed via SeekableByteChannel. + Issue: COMPRESS-327. +o Allow compressor extensions through a standard JRE ServiceLoader. + Issue: COMPRESS-368. +o Allow archive extensions through a standard JRE ServiceLoader. + Issue: COMPRESS-369. +o Add write support for the legacy LZMA format, this requires XZ + for Java 1.6. + Issue: COMPRESS-373. +o Add write support for the legacy LZMA stream to 7z, this + requires XZ for Java 1.6. + Issue: COMPRESS-374. +o Allow the clients of ParallelScatterZipCreator to provide + ZipArchiveEntryRequestSupplier. + Issue: COMPRESS-375. Thanks to Plamen Totev. +o Add a version-independent link to the API docs of the latest + release. + Issue: COMPRESS-372. 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. +o BitInputStream could return bad results when overflowing + internally - if two consecutive reads tried to read more than + 64 bits. + Issue: COMPRESS-363. +o ZipArchiveInputStream.closeEntry does not properly advance to + next entry if there are junk bytes at end of data section. + Issue: COMPRESS-364. Thanks to Mike Mole. +o ZipArchiveInputStream now throws an Exception if it encounters + a broken ZIP archive rather than signaling end-of-archive. + Issue: COMPRESS-367. Thanks to Mike Mole. +o ScatterZipOutputStream didn't close the StreamCompressor + causing a potential resource leak. + Issue: COMPRESS-377. + +Changes: +o Update Java requirement from 6 to 7. + Issue: COMPRESS-360. +o Clarified which TarArchiveEntry methods are useless for + entries read from an archive. + Issue: COMPRESS-366.