Re: [ANN] Apache Commons Compress 1.18 Released

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: [ANN] Apache Commons Compress 1.18 Released

garydgregory
Subject line should read "1.19", not "1.18".

G

On Tue, Aug 27, 2019 at 2:35 PM Stefan Bodewig <[hidden email]> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> The Apache Commons Team is pleased to announce the release of Apache
> Commons Compress 1.19.
>
> Apache Commons Compress software defines an API for working with
> compression and archive formats.  These include: bzip2, gzip, pack200,
> lzma, xz, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
> Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
>
> This release is mostly a bugfix release, for a full list of changes see
> below.
>
> ZipArchiveInputStream and ZipFile will no longer throw an exception if
> an extra field generally understood by Commons Compress is malformed
> but rather turn them into UnrecognizedExtraField instances.  You can
> influence the way extra fields are parsed in more detail by using the
> new getExtraFields(ExtraFieldParsingBehavior) method of
> ZipArchiveEntry now.
>
> Some of the ZIP extra fields related to strong encryption will now
> throw ZipExceptions rather than ArrayIndexOutOfBoundsExceptions in
> certain cases when used directly. There is no practical difference
> when they are read via ZipArchiveInputStream or ZipFile.
>
> Source and binary distributions are available for download from the
> Apache Commons download site:
>
> https://commons.apache.org/proper/commons-compress/download_compress.cgi
>
> When downloading, please verify signatures using the KEYS file available
> at the above location when downloading the release.
>
> Changes in this version include:
>
> New features:
> o It is now possible to skip parsing of local file headers when
>   using ZipFile which may speed up reading the archive at the
>   cost of potentially missing important information. See the
>   javadocs of the ZipFile class for details.
>   Issue: COMPRESS-466.
> o TarArchiveInputStream has a new constructor-arg lenient that
>   can be used to accept certain broken archives.
>   Issue: COMPRESS-469.
> o ArjArchiveEntry and SevenZArchiveEntry now implement hashCode
>   and equals.
>   Issue: COMPRESS-475.
> o Added a MultiReadOnlySeekableByteChannel class
>   that can be used to concatenate the parts of a multi volume 7z
>   archive so that SevenZFile can read them.
>   Issue: COMPRESS-231.
>   Thanks to Tim Underwood.
>
> Fixed Bugs:
> o ZipArchiveInputStream could forget the compression level has
>   changed under certain circumstances.
> o Fixed another potential resource leak in
>   ParallelScatterZipCreator#writeTo.
>   Issue: COMPRESS-470.
> o ArArchiveInputStream could think it had hit EOF prematurely.
>   Github Pull Request #74.
>   Thanks to Alex Bertram.
> o Throw IOException rather than RuntimeExceptions for certain
>   malformed LZ4 or Snappy inputs.
>   Issue: COMPRESS-490.
> o ZipArchiveInputStream failed to read stored entries with a
>   data descriptor if the data descriptor didn't use the
>   signature invented by InfoZIP.
>   Issue: COMPRESS-482.
>
> Changes:
> o SevenZFile now provides a way to cap memory consumption for
>   LZMA(2) compressed content.
>   Github Pull Request #76.
>   Issue: COMPRESS-481.
>   Thanks to Robin Schimpf.
> o The ARJ package has been updated to contain constants for more
>   recent specifications.
>   Issue: COMPRESS-464.
>   Thanks to Rostislav Krasny.
> o Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1.
>   Issue: COMPRESS-484.
> o ParallelScatterZipCreator now writes the entries to the
>   gathered output in the same order they have been added.
>   Github Pull Requests #78 and #79.
>   Issue: COMPRESS-485.
>   Thanks to HervĂ© Boutemy, Tibor Digana.
> o The Expander and Archive example classes can leak resources
>   they have wrapped around passed in streams or channels. The
>   methods consuming streams and channels have been adapted to
>   give the calling code a chance to deal with those wrapper
>   resources.
>   Issue: COMPRESS-486.
> o ZipArchiveInputStream and ZipFile no longer assume Commons
>   Compress would understand extra fields better than the writer
>   of the archive and silently turn extra fields that Commons
>   Compress should understand into UnrecognizedExtraFields if
>   parsing said fields fails.
>   It is now possible to take more control over the extra field
>   parsing process with a new overload of
>   ZipArchiveEntry#getExtraFields.
>   Issue: COMPRESS-479.
> o ZipArchiveInputStream will now throw an exception if reading a
>   stored entry with a data descriptor and the data descriptor
>   doesn't match what it has actually read.
>
>   The most common case for a situation like this is a stored ZIP
>   archive inside of the archive ZipArchiveInputStream currently
>   reads. In such a case ZipArchiveInputStream would happily
>   extract the contained archive and stop once the central
>   directory of the inner archive has been hit. This is a case
>   where ZipArchiveInputStream simply can not be used and only
>   ZipFile is able to read the archive.
>
>   The only other explanation is a broken archive. So the
>   exception prevents users from thinking they had successfully
>   read the contents of the archive.
>   Issue: COMPRESS-483.
> o The 7zip tools provide a default name for archive entries
>   without name; SevenZFile returns a null name for such
>   entries. A new method getDefaultName has been added to derive
>   the same name the 7zip tools would use and an option has been
>   added that sets SevenZArchiveEntry's name to the default name
>   if it is not contained inside the archive.
>   Issue: COMPRESS-478.
>
> New features:
> o It is now possible to skip parsing of local file headers when
>   using ZipFile which may speed up reading the archive at the
>   cost of potentially missing important information. See the
>   javadocs of the ZipFile class for details.
>   Issue: COMPRESS-466.
> o TarArchiveInputStream has a new constructor-arg lenient that
>   can be used to accept certain broken archives.
>   Issue: COMPRESS-469.
> o ArjArchiveEntry and SevenZArchiveEntry now implement hashCode
>   and equals.
>   Issue: COMPRESS-475.
> o Added a MultiReadOnlySeekableByteChannel class
>   that can be used to concatenate the parts of a multi volume 7z
>   archive so that SevenZFile can read them.
>   Issue: COMPRESS-231.
>   Thanks to Tim Underwood.
>
> Fixed Bugs:
> o ZipArchiveInputStream could forget the compression level has
>   changed under certain circumstances.
> o Fixed another potential resource leak in
>   ParallelScatterZipCreator#writeTo.
>   Issue: COMPRESS-470.
> o ArArchiveInputStream could think it had hit EOF prematurely.
>   Github Pull Request #74.
>   Thanks to Alex Bertram.
> o Throw IOException rather than RuntimeExceptions for certain
>   malformed LZ4 or Snappy inputs.
>   Issue: COMPRESS-490.
> o ZipArchiveInputStream failed to read stored entries with a
>   data descriptor if the data descriptor didn't use the
>   signature invented by InfoZIP.
>   Issue: COMPRESS-482.
>
> Changes:
> o SevenZFile now provides a way to cap memory consumption for
>   LZMA(2) compressed content.
>   Github Pull Request #76.
>   Issue: COMPRESS-481.
>   Thanks to Robin Schimpf.
> o The ARJ package has been updated to contain constants for more
>   recent specifications.
>   Issue: COMPRESS-464.
>   Thanks to Rostislav Krasny.
> o Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1.
>   Issue: COMPRESS-484.
> o ParallelScatterZipCreator now writes the entries to the
>   gathered output in the same order they have been added.
>   Github Pull Requests #78 and #79.
>   Issue: COMPRESS-485.
>   Thanks to HervĂ© Boutemy, Tibor Digana.
> o The Expander and Archive example classes can leak resources
>   they have wrapped around passed in streams or channels. The
>   methods consuming streams and channels have been adapted to
>   give the calling code a chance to deal with those wrapper
>   resources.
>   Issue: COMPRESS-486.
> o ZipArchiveInputStream and ZipFile no longer assume Commons
>   Compress would understand extra fields better than the writer
>   of the archive and silently turn extra fields that Commons
>   Compress should understand into UnrecognizedExtraFields if
>   parsing said fields fails.
>   It is now possible to take more control over the extra field
>   parsing process with a new overload of
>   ZipArchiveEntry#getExtraFields.
>   Issue: COMPRESS-479.
> o ZipArchiveInputStream will now throw an exception if reading a
>   stored entry with a data descriptor and the data descriptor
>   doesn't match what it has actually read.
>
>   The most common case for a situation like this is a stored ZIP
>   archive inside of the archive ZipArchiveInputStream currently
>   reads. In such a case ZipArchiveInputStream would happily
>   extract the contained archive and stop once the central
>   directory of the inner archive has been hit. This is a case
>   where ZipArchiveInputStream simply can not be used and only
>   ZipFile is able to read the archive.
>
>   The only other explanation is a broken archive. So the
>   exception prevents users from thinking they had successfully
>   read the contents of the archive.
>   Issue: COMPRESS-483.
> o The 7zip tools provide a default name for archive entries
>   without name; SevenZFile returns a null name for such
>   entries. A new method getDefaultName has been added to derive
>   the same name the 7zip tools would use and an option has been
>   added that sets SevenZArchiveEntry's name to the default name
>   if it is not contained inside the archive.
>   Issue: COMPRESS-478.
>
> 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:
>
> https://commons.apache.org/compress/
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1
>
> iEYEARECAAYFAl1leAEACgkQohFa4V9ri3KKNwCfWyjgBk5ted++N+lB9Kh+kTVM
> I3EAoIsjnL0Na/6JHdke5XSnx61hbNG2
> =+yE0
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>