Update Apache commons-compress 1.19

Description

ZipArchiveInputStream could forget the compression level has changed under certain circumstances.

 

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. Fixes COMPRESS-466.

 

TarArchiveInputStream has a new constructor-arg lenient that can be used to accept certain broken archives. Fixes COMPRESS-469.

 

Fixed another potential resource leak in ParallelScatterZipCreator#writeTo. Fixes COMPRESS-470.

 

ArjArchiveEntry and SevenZArchiveEntry now implement hashCode and equals. Fixes COMPRESS-475.

 

ArArchiveInputStream could think it had hit EOF prematurely. Github Pull Request #74. Thanks to Alex Bertram.

 

SevenZFile now provides a way to cap memory consumption for LZMA(2) compressed content. Github Pull Request #76. Fixes COMPRESS-481. Thanks to Robin Schimpf.

 

The ARJ package has been updated to contain constants for more recent specifications. Fixes COMPRESS-464. Thanks to Rostislav Krasny.

 

Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1. Fixes COMPRESS-484.

 

ParallelScatterZipCreator now writes the entries to the gathered output in the same order they have been added. Github Pull Requests #78 and #79. Fixes COMPRESS-485. Thanks to Hervé Boutemy, Tibor Digana.

 

Throw IOException rather than RuntimeExceptions for certain malformed LZ4 or Snappy inputs. Fixes COMPRESS-490.

 

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. Fixes COMPRESS-486.

 

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. Fixes COMPRESS-479.

 

ZipArchiveInputStream failed to read stored entries with a data descriptor if the data descriptor didn't use the signature invented by InfoZIP. Fixes COMPRESS-482.

 

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. Fixes COMPRESS-483.

 

Added a MultiReadOnlySeekableByteChannel class that can be used to concatenate the parts of a multi volume 7z archive so that SevenZFile can read them. Fixes COMPRESS-231. Thanks to Tim Underwood.

 

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. Fixes COMPRESS-478.

 

NioZipEncoding#encode could enter an infinite loop for certain inputs.

Activity

Show:
Fixed

Details

Priority

Affects versions

Fix versions

Components

Assignee

Reporter

Created August 29, 2019 at 3:21 AM
Updated March 2, 2020 at 5:07 PM
Resolved August 29, 2019 at 8:04 AM