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.