<?xml version="1.0" encoding="UTF-8"?>
|
<!--
|
Licensed to the Apache Software Foundation (ASF) under one
|
or more contributor license agreements. See the NOTICE file
|
distributed with this work for additional information
|
regarding copyright ownership. The ASF licenses this file
|
to you under the Apache License, Version 2.0 (the
|
"License"); you may not use this file except in compliance
|
with the License. You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
Unless required by applicable law or agreed to in writing,
|
software distributed under the License is distributed on an
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
KIND, either express or implied. See the License for the
|
specific language governing permissions and limitations
|
under the License.
|
-->
|
|
<!--
|
This file is also used by the maven-changes-plugin to generate the release notes.
|
Useful ways of finding items to add to this file are:
|
|
1. Add items when you fix a bug or add a feature (this makes the
|
release process easy :-).
|
|
2. Do a JIRA search for tickets closed since the previous release.
|
|
3. Use the report generated by the maven-changelog-plugin to see all
|
SVN commits. TBA how to use this with SVN.
|
|
To generate the release notes from this file:
|
|
mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n]
|
|
The <action> type attribute can be add,update,fix,remove.
|
-->
|
|
<document>
|
<properties>
|
<title>commons-compress</title>
|
</properties>
|
<body>
|
<release version="1.19" date="not released, yet"
|
description="Release 1.19">
|
<action type="fix" date="2018-09-07">
|
ZipArchiveInputStream could forget the compression level has
|
changed under certain circumstances.
|
</action>
|
</release>
|
<release version="1.18" date="2018-08-16"
|
description="Release 1.18">
|
<action type="fix" date="2018-06-15" due-to="DidierLoiseau">
|
The example Expander class has been vulnerable to a path
|
traversal in the edge case that happens when the target
|
directory has a sibling directory and the name of the target
|
directory is a prefix of the sibling directory's name.
|
</action>
|
<action issue="COMPRESS-456" type="fix" date="2018-06-19">
|
Changed the OSGi Import-Package to also optionally import
|
javax.crypto so encrypted archives can be read.
|
</action>
|
<action issue="COMPRESS-457" type="fix" date="2018-07-01">
|
Changed various implementations of the close method to better
|
ensure all held resources get closed even if exceptions are
|
thrown during the closing the stream.
|
</action>
|
<action issue="COMPRESS-455" type="fix" date="2018-07-01">
|
ZipArchiveInputStream can now detect the APK Signing Block
|
used in signed Android APK files and treats it as an "end of
|
archive" marker.
|
</action>
|
<action issue="COMPRESS-459" type="fix" date="2018-07-11"
|
due-to="Jens Reimann">
|
The cpio streams didn't handle archives using a multi-byte
|
encoding properly.
|
</action>
|
<action issue="COMPRESS-460" type="add" date="2018-07-28"
|
due-to="Carmi Grushko">
|
It is now possible to specify the arguments of zstd-jni's
|
ZstdOutputStream constructors via Commons Compress as well.
|
</action>
|
<action issue="COMPRESS-463" type="fix" date="2018-08-09">
|
ZipArchiveInputStream#read would silently return -1 on a
|
corrupted stored entry and even return > 0 after hitting the
|
end of the archive.
|
</action>
|
<action issue="COMPRESS-462" type="fix" date="2018-08-10">
|
ArArchiveInputStream#read would allow to read from the stream
|
without opening an entry at all.
|
</action>
|
</release>
|
<release version="1.17" date="2018-06-03"
|
description="Release 1.17">
|
<action type="fix" date="2018-02-06">
|
Removed the objenesis dependency from the pom as it is not
|
needed at all.
|
</action>
|
<action issue="COMPRESS-446" type="fix" date="2018-03-29">
|
Fixed resource leak in ParallelScatterZipCreator#writeTo.
|
</action>
|
<action type="update" date="2018-04-01" due-to="Marchenko Sergey">
|
Fixed some code examples.
|
Github Pull Request #63.
|
</action>
|
<action issue="COMPRESS-447" type="fix" date="2018-04-22">
|
Certain errors when parsing ZIP extra fields in corrupt
|
archives are now turned into ZipException, they used to
|
manifest as ArrayIndexOutOfBoundsException before.
|
</action>
|
<action issue="COMPRESS-445" type="update" date="2018-04-22"
|
due-to="Andreas Beeker">
|
The streams returned by ZipFile and most other decompressing
|
streams now provide information about the number of compressed
|
and uncompressed bytes read so far. This may be used to detect
|
a ZipBomb if the compression ratio exceeds a certain
|
threshold, for example.
|
For SevenZFile a new method returns the statistics for the
|
current entry.
|
</action>
|
<action issue="COMPRESS-443" type="add" date="2018-04-25">
|
Added a unit test that is supposed to fail if we break the
|
OSGi manifest entries again.
|
</action>
|
<action issue="COMPRESS-449" type="add" date="2018-05-02">
|
Add a new SkipShieldingInputStream class that can be used with
|
streams that throw an IOException when skip is invoked.
|
</action>
|
<action issue="COMPRESS-451" type="fix" date="2018-05-04">
|
IOUtils.copy now verifies the buffer size is bigger than 0.
|
</action>
|
<action issue="COMPRESS-452" type="add" date="2018-05-09">
|
New constructors have been added to SevenZFile that accept
|
char[]s rather than byte[]s in order to avoid a common error
|
of using the wrong encoding when creating the byte[]. This
|
change may break source compatibility for client code that
|
uses one of the constructors expecting a password and passes
|
in null as password. We recommend to change the code to use a
|
constructor without password argument.
|
</action>
|
<action issue="COMPRESS-453" type="update" date="2018-05-24">
|
Added a workaround for a bug in AdoptOpenJDK for S/390 to
|
BZip2CompressorInputStream.
|
</action>
|
<action issue="COMPRESS-454" type="fix" date="2018-05-30">
|
ZipArchiveInputStream failed to read some files with stored
|
entries using a data descriptor.
|
</action>
|
</release>
|
<release version="1.16.1" date="2018-02-10"
|
description="Release 1.16.1">
|
<action issue="COMPRESS-442" type="fix" date="2018-02-06">
|
Fixed the OSGi manifest entry for imports that has been broken
|
in 1.16.
|
</action>
|
</release>
|
<release version="1.16" date="2018-02-05"
|
description="Release 1.16">
|
<action issue="COMPRESS-423" type="add" date="2017-10-17"
|
due-to="Andre F de Miranda">
|
Add read-only support for Zstandard compression based on the
|
Zstd-jni project.
|
</action>
|
<action issue="COMPRESS-425" type="add" date="2017-10-22">
|
Added auto-detection for Zstandard compressed streams.
|
</action>
|
<action issue="COMPRESS-430" type="fix" date="2017-11-25"
|
due-to="Bruno P. Kinoshita">
|
Synchronized iteration over a synchronizedList in ParallelScatterZipCreator.
|
</action>
|
<action issue="COMPRESS-432" type="fix" date="2017-12-22">
|
ZipFile could get stuck in an infinite loop when parsing ZIP
|
archives with certain strong encryption headers.
|
</action>
|
<action issue="COMPRESS-435" type="update" date="2017-12-27"
|
due-to="BELUGA BEHR">
|
Replaces instanceof checks with a type marker in LZ77 support code.
|
</action>
|
<action issue="COMPRESS-426" type="add" date="2017-12-28">
|
Added write-support for Zstandard compression.
|
</action>
|
<action issue="COMPRESS-424" type="fix" date="2017-12-30">
|
Added improved checks to detect corrupted bzip2 streams and
|
throw the expected IOException rather than obscure
|
RuntimeExceptions.
|
</action>
|
<action type="update" date="2018-01-04">
|
Updated XZ for Java dependency to 1.8 in order to pick up bug
|
fix to LZMA2InputStream's available method.
|
</action>
|
<action type="update" date="2018-01-05" issue="COMPRESS-429"
|
due-to="Damiano Albani">
|
ZipArchiveEntry now exposes how the name or comment have been
|
determined when the entry was read.
|
</action>
|
<action issue="COMPRESS-380" type="add" date="2018-01-09"
|
due-to="Christian Marquez Grabia">
|
Added read-only DEFLATE64 support to ZIP archives and as
|
stand-alone CompressorInputStream.
|
</action>
|
<action issue="COMPRESS-438" type="update" date="2018-01-10">
|
ZipFile.getInputStream will now always buffer the stream
|
internally in order to improve read performance.
|
</action>
|
<action issue="COMPRESS-440" type="update" date="2018-01-12"
|
due-to="Dawid Weiss">
|
Speed improvement for DEFLATE64 decompression.
|
</action>
|
<action issue="COMPRESS-437" type="add" date="2018-01-13">
|
Added read-only DEFLATE64 support to 7z archives.
|
</action>
|
<action issue="COMPRESS-436" type="update" date="2018-01-14">
|
Added a few extra sanity checks for the rarer compression
|
methods used in ZIP archives.
|
</action>
|
<action issue="COMPRESS-441" type="update" date="2018-01-14">
|
Simplified the special handling for the dummy byte required by
|
zlib when using java.util.zip.Inflater.
|
</action>
|
<action type="update" date="2018-01-18" due-to="Shahab Kondri">
|
Various code cleanups.
|
Github Pull Request #61.
|
</action>
|
<action type="update" date="2018-01-29">
|
TarArchiveEntry's preserveLeadingSlashes constructor argument
|
has been renamed and can now also be used to preserve the
|
drive letter on Windows.
|
</action>
|
</release>
|
<release version="1.15" date="2017-10-17"
|
description="Release 1.15
|
----------------------------------------
|
|
TarArchiveOutputStream now ensures record size is 512 and block size is
|
a multiple of 512 as any other value would create invalid tar
|
archives. This may break compatibility for code that deliberately
|
wanted to create such files.">
|
<action issue="COMPRESS-394" type="fix" date="2017-05-22">
|
Make sure "version needed to extract" in local file header and
|
central directory of a ZIP archive agree with each other.
|
Also ensure the version is set to 2.0 if DEFLATE is used.
|
</action>
|
<action issue="COMPRESS-395" type="fix" date="2017-05-22">
|
Don't use a data descriptor in ZIP archives when copying a raw
|
entry that already knows its size and CRC information.
|
</action>
|
<action issue="COMPRESS-413" type="fix" date="2017-05-22" due-to="Simon Spero">
|
Travis build redundantly repeats compilation and tests redundantly #43.
|
</action>
|
<action issue="COMPRESS-397" type="add" date="2017-05-22">
|
Added magic MANIFEST entry Automatic-Module-Name so the module
|
name will be org.apache.commons.compress when the jar is used
|
as an automatic module in Java9.
|
</action>
|
<action issue="COMPRESS-396" type="fix" date="2017-05-23">
|
The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for
|
Java.
|
</action>
|
<action issue="COMPRESS-406" type="fix" date="2017-06-12"
|
due-to="Simon Spero">
|
BUILDING.md now passes the RAT check.
|
</action>
|
<action issue="COMPRESS-405" type="add" date="2017-06-15"
|
due-to="Simon Spero ">
|
Added a new utility class FixedLengthBlockOutputStream that
|
can be used to ensure writing always happens in blocks of a
|
given size.
|
</action>
|
<action issue="COMPRESS-412" type="fix" date="2017-06-17"
|
due-to="Michael Hausegger">
|
Made sure ChecksumCalculatingInputStream receives valid
|
checksum and input stream instances via the constructor.
|
</action>
|
<action issue="COMPRESS-407" type="fix" date="2017-06-24"
|
due-to="Simon Spero ">
|
TarArchiveOutputStream now verifies the block and record sizes
|
specified at construction time are compatible with the tar
|
specification. In particular 512 is the only record size
|
accepted and the block size must be a multiple of 512.
|
At the same time the default block size in
|
TarArchiveOutputStream has been changed from 10240 to 512
|
bytes.
|
</action>
|
<action issue="COMPRESS-400" type="add" date="2017-06-26"
|
due-to="Simon Spero ">
|
It is now possible to specify/read custom PAX headers when
|
writing/reading tar archives.
|
</action>
|
<action issue="COMPRESS-415" type="fix" date="2017-06-27">
|
Fixed class names of CpioArchiveEntry and
|
CpioArchiveInputStream in various Javadocs.
|
</action>
|
<action issue="COMPRESS-416" type="fix" date="2017-07-04"
|
due-to="Simon Spero ">
|
The code of the extended timestamp zip extra field incorrectly
|
assumed the time was stored as unsigned 32-bit int and thus
|
created incorrect results for years after 2037.
|
</action>
|
<action issue="COMPRESS-410" type="fix" date="2017-07-05"
|
due-to="Simon Spero ">
|
Removed ZipEncoding code that became obsolete when we started
|
to require Java 5 as baseline long ago.
|
</action>
|
<action issue="COMPRESS-417" type="fix" date="2017-07-19">
|
The tar package will no longer try to parse the major and
|
minor device numbers unless the entry represents a character
|
or block special file.
|
</action>
|
<action issue="COMPRESS-421" type="fix" date="2017-10-06"
|
due-to="Roel Spilker">
|
When reading tar headers with name fields containing embedded
|
NULs, the name will now be terminated at the first NUL byte.
|
</action>
|
<action issue="COMPRESS-409" type="fix" date="2017-10-08">
|
Simplified TarArchiveOutputStream by replacing the internal
|
buffering with new class FixedLengthBlockOutputStream.
|
</action>
|
</release>
|
<release version="1.14" date="2017-05-14"
|
description="Release 1.14">
|
<action issue="COMPRESS-378" type="fix" date="2017-01-09">
|
SnappyCompressorInputStream slides the window too early
|
leading to ArrayIndexOutOfBoundsExceptions for some streams.
|
</action>
|
<action issue="COMPRESS-246" type="add" date="2017-01-10">
|
Added write support for Snappy.
|
</action>
|
<action issue="COMPRESS-358" type="update" date="2017-01-10">
|
The blocksize for FramedSnappyCompressorInputStream can now be
|
configured as some IWA files seem to be using blocks larger
|
than the default 32k.
|
</action>
|
<action issue="COMPRESS-379" type="fix" date="2017-01-15"
|
due-to="Guillaume Boué">
|
ZipArchiveEntry#isUnixSymlink now only returns true if the
|
corresponding link flag is the only file-type flag set.
|
</action>
|
<action issue="COMPRESS-271" type="add" date="2017-02-07">
|
Added support for LZ4 (block and frame format).
|
</action>
|
<action type="update" date="2017-02-15" due-to="Thomas Meyer">
|
BZip2CompressorInputstream now uses BitInputStream internally.
|
Pull Request #13.
|
</action>
|
<action type="fix" date="2017-03-29" due-to="Daniel Collin">
|
Fixed an integer overflow in CPIO's CRC calculation.
|
Pull Request #17.
|
</action>
|
<action issue="COMPRESS-385" type="add" date="2017-04-18">
|
Add static detect(InputStream in) to CompressorStreamFactory
|
and ArchiveStreamFactory
|
</action>
|
<action issue="COMPRESS-387" type="fix" date="2017-04-18">
|
Make unit tests work on Windows paths with spaces in their names.
|
</action>
|
<action issue="COMPRESS-388" type="update" date="2017-04-25"
|
due-to="Zbynek Vyskovsky">
|
Improved performance for concurrent reads from ZipFile when
|
reading from a file.
|
</action>
|
<action issue="COMPRESS-382" type="add" date="2017-04-25"
|
due-to="Tim Allison">
|
Added a way to limit amount of memory ZCompressorStream may
|
use.
|
</action>
|
<action issue="COMPRESS-386" type="add" date="2017-04-25"
|
due-to="Tim Allison">
|
Added a way to limit amount of memory ZCompressorStream may
|
use.
|
</action>
|
<action issue="COMPRESS-382" type="add" date="2017-04-25"
|
due-to="Tim Allison">
|
Added a way to limit amount of memory LZMACompressorStream and
|
XZCompressorInputStream may use.
|
</action>
|
<action issue="COMPRESS-389" type="fix" date="2017-04-26">
|
Internal location pointer in ZipFile could get incremented
|
even if nothing had been read.
|
</action>
|
<action issue="COMPRESS-392" type="add" date="2017-05-02" due-to="Philippe Mouawad">
|
Add Brotli decoder based on the Google Brotli library.
|
</action>
|
<action issue="COMPRESS-390" type="add" date="2017-05-04"
|
due-to="Zbynek Vyskovsky">
|
ZipEntry now exposes its data offset.
|
</action>
|
<action issue="COMPRESS-393" type="fix" date="2017-05-07">
|
LZMACompressorOutputStream#flush would throw an exception
|
rather than be the NOP it promised to be.
|
</action>
|
<action issue="COMPRESS-391" type="add" date="2017-05-11"
|
due-to="Zbynek Vyskovsky">
|
Using ZipArchiveEntry's setAlignment it is now possible to
|
ensure the data offset of an entry starts at a file position
|
that at word or page boundaries.
|
A new extra field has been added for this purpose.
|
</action>
|
</release>
|
<release version="1.13" date="2016-12-29"
|
description="Release 1.13 - API compatible to 1.12 but requires Java 7 at runtime.">
|
<action issue="COMPRESS-360" type="update" date="2016-06-25" dev="ggregory">
|
Update Java requirement from 6 to 7.
|
</action>
|
<action issue="COMPRESS-363" type="fix" date="2016-07-01">
|
BitInputStream could return bad results when overflowing
|
internally - if two consecutive reads tried to read more than
|
64 bits.
|
</action>
|
<action issue="COMPRESS-366" type="update" date="2016-10-07">
|
Clarified which TarArchiveEntry methods are useless for
|
entries read from an archive.
|
</action>
|
<action issue="COMPRESS-364" type="fix" date="2016-10-07"
|
due-to="Mike Mole">
|
ZipArchiveInputStream.closeEntry does not properly advance to
|
next entry if there are junk bytes at end of data section
|
</action>
|
<action issue="COMPRESS-327" type="add" date="2016-10-12">
|
SevenZFile, SevenZOutputFile, ZipFile and
|
ZipArchiveOutputStream can now work on non-file resources if
|
they can be accessed via SeekableByteChannel.
|
</action>
|
<action issue="COMPRESS-368" type="add" date="2016-11-15">
|
Allow compressor extensions through a standard JRE ServiceLoader.
|
</action>
|
<action issue="COMPRESS-369" type="add" date="2016-11-15">
|
Allow archive extensions through a standard JRE ServiceLoader.
|
</action>
|
<action issue="COMPRESS-373" type="add" date="2016-11-29">
|
Add write support for the legacy LZMA format, this requires XZ
|
for Java 1.6.
|
</action>
|
<action issue="COMPRESS-374" type="add" date="2016-11-29">
|
Add write support for the legacy LZMA stream to 7z, this
|
requires XZ for Java 1.6.
|
</action>
|
<action issue="COMPRESS-375" type="add" date="2016-12-04"
|
due-to="Plamen Totev">
|
Allow the clients of ParallelScatterZipCreator to provide
|
ZipArchiveEntryRequestSupplier.
|
</action>
|
<action issue="COMPRESS-367" type="fix" date="2016-12-09"
|
due-to="Mike Mole">
|
ZipArchiveInputStream now throws an Exception if it encounters
|
a broken ZIP archive rather than signaling end-of-archive.
|
</action>
|
<action issue="COMPRESS-377" type="fix" date="2016-12-20">
|
ScatterZipOutputStream didn't close the StreamCompressor
|
causing a potential resource leak.
|
</action>
|
<action issue="COMPRESS-372" type="add" date="2016-12-20">
|
Add a version-independent link to the API docs of the latest
|
release.
|
</action>
|
</release>
|
<release version="1.12" date="2016-06-21"
|
description="Release 1.12 - API compatible to 1.11 but requires Java 6 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.
|
">
|
<action issue="COMPRESS-349" type="update" date="2016-04-09" dev="ggregory">
|
Update requirement from Java 5 to 6.
|
</action>
|
<action issue="COMPRESS-350" type="update" date="2016-04-09" dev="ggregory">
|
TarArchiveEntry wastefully allocates empty arrays.
|
</action>
|
<action issue="COMPRESS-348" type="fix" date="2016-04-24">
|
SevenZFile.read() throws an IllegalStateException for empty entries.
|
</action>
|
<action issue="COMPRESS-353" type="update" date="2016-05-06" dev="ggregory">
|
Javadoc for BZip2CompressorInputStream(InputStream, boolean) should refer to IOEx, not NPE.
|
</action>
|
<action issue="COMPRESS-354" type="update" date="2016-05-16">
|
PureJavaCrc32C in the snappy package is now final so it is now
|
safe to call a virtual method inside the constructor.
|
</action>
|
<action issue="COMPRESS-355" type="fix" date="2016-05-20"
|
due-to="Jeremy Gustie">
|
TarArchiveInputStream failed to parse PAX headers that
|
included blank lines.
|
</action>
|
<action issue="COMPRESS-356" type="fix" date="2016-05-20"
|
due-to="Jeremy Gustie">
|
TarArchiveInputStream failed to parse PAX headers whose tar
|
entry name ended with a slash.
|
</action>
|
<action issue="COMPRESS-352" type="add" date="2016-05-22">
|
FramedSnappyCompressorInputStream now supports the dialect of
|
Snappy used by the IWA files contained within the zip archives
|
used in Apple's iWork 13 files.
|
</action>
|
<action issue="COMPRESS-351" type="update" date="2016-06-07">
|
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.
|
</action>
|
<action issue="COMPRESS-357" type="update" date="2016-06-15">
|
BZip2CompressorOutputStream no longer tries to finish the
|
output stream in finalize. This is a breaking change for code
|
that relied on the finalizer.
|
</action>
|
</release>
|
<release version="1.11" date="2016-04-06"
|
description="Release 1.11">
|
<action issue="COMPRESS-347" type="add" date="2016-03-23">
|
TarArchiveInputStream now supports reading global PAX headers.
|
</action>
|
<action issue="COMPRESS-346" type="add" date="2016-03-23">
|
The PAX headers for sparse entries written by star are now
|
applied.
|
</action>
|
<action issue="COMPRESS-345" type="add" date="2016-03-23">
|
GNU sparse files using one of the PAX formats are now
|
detected, but cannot be extracted.
|
</action>
|
<action issue="COMPRESS-344" type="fix" date="2016-03-22">
|
ArArchiveInputStream can now read GNU extended names that are
|
terminated with a NUL byte rather than a linefeed.
|
</action>
|
<action issue="COMPRESS-341" type="add" date="2016-03-20">
|
New method SevenZFile.getEntries can be used to list the
|
contents of a 7z archive.
|
</action>
|
<action issue="COMPRESS-343" type="fix" date="2016-03-17"
|
due-to="Rene Preissel">
|
Native Memory Leak in Sevenz-DeflateDecoder.
|
</action>
|
<action type="add" date="2016-03-05"
|
due-to="Matt Hovey">
|
When using Zip64Mode.Always also use ZIP64 extensions inside
|
the central directory.
|
GitHub Pull Request #10
|
</action>
|
<action issue="COMPRESS-340" type="fix" date="2016-02-24"
|
due-to="Dawid Weiss">
|
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.
|
</action>
|
<action issue="COMPRESS-336" type="fix" date="2016-02-14">
|
file names of tar archives using the xstar format are now
|
parsed properly.
|
</action>
|
<action issue="COMPRESS-335" type="fix" date="2016-02-05">
|
checksums of tars that pad the checksum field to the left are
|
now calculated properly.
|
</action>
|
<action issue="COMPRESS-334" type="fix" date="2016-02-05"
|
due-to="Jeremy Gustie">
|
ArArchiveInputStream failed to read past the first entry when
|
BSD long names have been used.
|
</action>
|
<action issue="COMPRESS-333" type="fix" date="2016-02-03" due-to="Dawid Weiss">
|
Added buffering for random access which speeds up 7Z support.
|
</action>
|
<action issue="COMPRESS-331" type="fix" date="2016-01-31">
|
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.
|
</action>
|
<action issue="COMPRESS-323" type="add" date="2016-01-29">
|
ZipFile.getRawInputStream() is now part of the public API
|
</action>
|
<action issue="COMPRESS-332" type="fix" date="2016-01-29">
|
SnappyCompressorInputStream and
|
FramedSnappyCompressorInputStream returned 0 at the end of the
|
stream under certain circumstances.
|
</action>
|
<action type="add" date="2016-01-27" due-to="Jason van Zyl">
|
Allow byte-for-byte replication of Zip entries.
|
GitHub Pull Request #6.
|
</action>
|
<action issue="COMPRESS-328" type="add" date="2016-01-15">
|
TarArchiveEntry's preserveLeadingSlashes is now a property and used
|
on later calls to setName, too.
|
This behavior is a breaking change.
|
</action>
|
<action issue="COMPRESS-326" type="fix" date="2015-10-24">
|
Adjusted unit test to updates in Java8 and later that change
|
the logic of ZipEntry#getTime.
|
</action>
|
<action issue="COMPRESS-324" type="fix" date="2015-10-06">
|
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.
|
</action>
|
<action issue="COMPRESS-321" type="fix" date="2015-08-22">
|
ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
|
fields are read from the central directory.
|
</action>
|
<action type="add" date="2015-11-11" due-to="Sören Glimm">
|
Added read-only support for bzip2 compression used inside of
|
ZIP archives.
|
GitHub Pull Request #4.
|
</action>
|
</release>
|
|
<release version="1.10" date="2015-08-18"
|
description="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.
|
">
|
|
<action issue="COMPRESS-317" type="fix" date="2015-06-09"
|
due-to="Lucas Werkmeister">
|
ArrayIndexOutOfBoundsException when ZIP extra fields are read
|
and the entry contains an UnparseableExtraField.
|
</action>
|
<action issue="COMPRESS-316" type="add" date="2015-05-23"
|
due-to="Nick Burch">
|
CompressorStreamFactory can now auto-detect DEFLATE streams
|
with ZLIB header.
|
</action>
|
<action issue="COMPRESS-314" type="fix" date="2015-05-08">
|
TarArchiveInputStream can now read entries with group or
|
user ids > 0x80000000.
|
</action>
|
<action issue="COMPRESS-315" type="fix" date="2015-05-06">
|
TarArchiveOutputStream can now write entries with group or
|
user ids > 0x80000000.
|
</action>
|
<action issue="COMPRESS-313" type="add" date="2015-03-30">
|
CompressorStreamFactory can now auto-detect LZMA streams.
|
</action>
|
<action issue="COMPRESS-312" type="fix" date="2015-03-28">
|
TarArchiveEntry's constructor with a File and a String arg
|
didn't normalize the name.
|
</action>
|
<action issue="COMPRESS-308" type="fix" date="2015-02-20">
|
ZipEncodingHelper no longer reads system properties directly
|
to determine the default charset.
|
</action>
|
<action issue="COMPRESS-309" type="fix" date="2015-02-20">
|
BZip2CompressorInputStream#read would return -1 when asked to
|
read 0 bytes.
|
</action>
|
<action issue="COMPRESS-306" type="fix" date="2015-02-17">
|
ArchiveStreamFactory fails to pass on the encoding when creating some streams.
|
* ArjArchiveInputStream
|
* CpioArchiveInputStream
|
* DumpArchiveInputStream
|
* JarArchiveInputStream
|
* TarArchiveInputStream
|
* JarArchiveOutputStream
|
</action>
|
<action issue="COMPRESS-302" type="fix" date="2015-02-16">
|
Restore immutability/thread-safety to ArchiveStreamFactory.
|
The class is now immutable provided that the method setEntryEncoding is not used.
|
The class is thread-safe.
|
</action>
|
<action issue="COMPRESS-303" type="fix" date="2015-02-16">
|
Restore immutability/thread-safety to CompressorStreamFactory.
|
The class is now immutable provided that the method setDecompressConcatenated is not used.
|
The class is thread-safe.
|
</action>
|
<action issue="COMPRESS-298" type="fix" date="2015-01-20">
|
SevenZFile now throws the specific PasswordRequiredException
|
when it encounters an encrypted stream but no password has
|
been specified.
|
</action>
|
<action issue="COMPRESS-290" type="fix" date="2015-01-13"
|
due-to="Kristian Rosenvold">
|
Improved error message when tar encounters a groupId that is
|
too big to write without using the STAR or POSIX format.
|
</action>
|
<action issue="COMPRESS-296" type="add" date="2015-01-10"
|
due-to="Kristian Rosenvold">
|
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.
|
</action>
|
<action type="add" date="2014-12-24"
|
due-to="Kristian Rosenvold">
|
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.
|
</action>
|
<action issue="COMPRESS-297" type="fix" date="2014-12-22">
|
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.
|
</action>
|
<action issue="COMPRESS-295" type="add" date="2014-12-18"
|
due-to="Kristian Rosenvold">
|
New methods in ZipArchiveOutputStream and ZipFile allows
|
entries to be copied from one archive to another without
|
having to re-compress them.
|
</action>
|
<action type="update" date="2014-10-28"
|
due-to="Damjan Jovanovic">
|
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.
|
</action>
|
</release>
|
|
<release version="1.9" date="2014-10-09"
|
description="Release 1.9">
|
<action type="add" date="2014-06-14" issue="COMPRESS-263"
|
due-to="Matthias Stevens">
|
Added support for DEFLATE streams without any gzip framing.
|
</action>
|
<action type="fix" date="2014-08-14" issue="COMPRESS-287">
|
When reading 7z files unknown file properties and properties
|
of type kDummy are now ignored.
|
</action>
|
<action type="fix" date="2014-08-21" issue="COMPRESS-286">
|
Expanding 7z archives using LZMA compression could cause an
|
EOFException.
|
</action>
|
<action type="update" date="2014-08-31" issue="COMPRESS-285">
|
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.
|
</action>
|
<action type="fix" date="2014-09-19" issue="COMPRESS-289"
|
due-to="Bob Robertson">
|
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.
|
</action>
|
</release>
|
|
<release version="1.8.1" date="2014-05-14"
|
description="Release 1.8.1">
|
<action type="update" date="2014-03-19">
|
The dependency on org.tukaani:xz is now marked as optional.
|
</action>
|
<action type="fix" date="2014-03-28" issue="COMPRESS-270">
|
The snappy, ar and tar inputstreams might fail to read from a
|
non-buffered stream in certain cases.
|
</action>
|
<action type="add" date="2014-04-12" issue="COMPRESS-272">
|
CompressorStreamFactory can now auto-detect Unix compress
|
(".Z") streams.
|
</action>
|
<action type="fix" date="2014-04-12" issue="COMPRESS-277">
|
IOUtils#skip might skip fewer bytes than requested even though
|
more could be read from the stream.
|
</action>
|
<action type="fix" date="2014-04-13" issue="COMPRESS-276">
|
ArchiveStreams now validate there is a current entry before
|
reading or writing entry data.
|
</action>
|
<action type="fix" date="2014-04-13">
|
ArjArchiveInputStream#canReadEntryData tested the current
|
entry of the stream rather than its argument.
|
</action>
|
<action type="fix" date="2014-04-13" issue="COMPRESS-274">
|
ChangeSet#delete and deleteDir now properly deal with unnamed
|
entries.
|
</action>
|
<action type="fix" date="2014-04-18" issue="COMPRESS-273">
|
Added a few null checks to improve robustness.
|
</action>
|
<action type="fix" date="2014-04-19" issue="COMPRESS-278">
|
TarArchiveInputStream failed to read archives with empty
|
gid/uid fields.
|
</action>
|
<action type="fix" date="2014-04-27" issue="COMPRESS-279">
|
TarArchiveInputStream now again throws an exception when it
|
encounters a truncated archive while reading from the last
|
entry.
|
</action>
|
<action type="fix" date="2014-05-02" issue="COMPRESS-280"
|
due-to="BELUGA BEHR">
|
Adapted TarArchiveInputStream#skip to the modified
|
IOUtils#skip method.
|
</action>
|
</release>
|
<release version="1.8" date="2014-03-12"
|
description="Release 1.8">
|
<action issue="COMPRESS-253" type="fix" date="2014-01-20">
|
BZip2CompressorInputStream read fewer bytes than possible from
|
a truncated stream.
|
</action>
|
<action issue="COMPRESS-253" type="fix" date="2014-01-22">
|
SevenZFile failed claiming the dictionary was too large when
|
archives used LZMA compression for headers and content and
|
certain non-default dictionary sizes.
|
</action>
|
<action issue="COMPRESS-259" type="fix" date="2014-01-24">
|
CompressorStreamFactory.createCompressorInputStream with
|
explicit compression did not honor decompressConcatenated
|
</action>
|
<action issue="COMPRESS-260" type="add" date="2014-02-20">
|
GzipCompressorInputStream now provides access to the same
|
metadata that can be provided via GzipParameters when writing
|
a gzip stream.
|
</action>
|
<action issue="COMPRESS-262" type="fix" date="2014-02-21">
|
TarArchiveInputStream will now read archives created by tar
|
implementations that encode big numbers by not adding a
|
trailing NUL.
|
</action>
|
<action issue="COMPRESS-264" type="fix" date="2014-02-21">
|
ZipArchiveInputStream would return NUL bytes for the first 512
|
bytes of a STORED entry if it was the very first entry of the
|
archive.
|
</action>
|
<action issue="COMPRESS-265" type="fix" date="2014-02-22">
|
When writing PAX/POSIX headers for TAR entries with
|
backslashes or certain non-ASCII characters in their name
|
TarArchiveOutputStream could fail.
|
</action>
|
<action issue="COMPRESS-267" type="fix" date="2014-02-22">
|
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.
|
</action>
|
<action issue="COMPRESS-266" type="add" date="2014-02-25">
|
SevenZOutputFile now supports chaining multiple
|
compression/encryption/filter methods and passing options to
|
the methods.
|
</action>
|
<action issue="COMPRESS-261" type="add" date="2014-02-26">
|
The (compression) method(s) can now be specified per entry in
|
SevenZOutputFile.
|
</action>
|
<action issue="COMPRESS-258" type="add" date="2014-02-26">
|
SevenZArchiveEntry "knows" which method(s) have been used to
|
write it to the archive.
|
</action>
|
<action type="add" date="2014-02-28">
|
The 7z package now supports the delta filter as method.
|
</action>
|
<action issue="COMPRESS-257" type="add" date="2014-03-03">
|
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.
|
</action>
|
</release>
|
<release version="1.7" date="2014-01-20"
|
description="Release 1.7">
|
<action issue="COMPRESS-241" type="fix" date="2013-10-27">
|
SevenZOutputFile#closeArchiveEntry throws an exception when
|
using LZMA2 compression on Java8.
|
</action>
|
<action issue="COMPRESS-147" type="add" date="2013-11-07"
|
due-to="BELUGA BEHR">
|
Read-Only support for Snappy compression.
|
</action>
|
<action issue="COMPRESS-244" type="fix" date="2013-11-27"
|
due-to="Nico Kruber">
|
7z reading of big 64bit values could be wrong.
|
</action>
|
<action issue="COMPRESS-243" type="add" date="2013-11-30"
|
due-to="Damjan Jovanovic">
|
Read-Only support for .Z compressed files.
|
</action>
|
<action type="add" date="2013-12-06" due-to="Damjan Jovanovic">
|
ZipFile and ZipArchiveInputStream now support reading entries compressed using the
|
SHRINKING method.
|
</action>
|
<action issue="COMPRESS-245" type="fix" date="2013-12-06">
|
TarArchiveInputStream could fail to read an archive completely.
|
</action>
|
<action issue="COMPRESS-242" type="fix" date="2013-12-08">
|
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.
|
</action>
|
<action issue="COMPRESS-250" type="add" date="2013-12-16" due-to="Emmanuel Bourg">
|
GzipCompressorOutputStream now supports setting the compression level and the header metadata
|
(filename, comment, modification time, operating system and extra flags)
|
</action>
|
<action issue="COMPRESS-115" type="add" date="2013-12-19" due-to="Emmanuel Bourg">
|
ZipFile and ZipArchiveInputStream now support reading entries compressed using the IMPLODE method.
|
</action>
|
<action issue="COMPRESS-252" type="fix" date="2013-12-20">
|
SevenZOutputFile would create invalid archives if more than
|
six empty files or directories were included.
|
</action>
|
<action type="add" date="2013-12-20">
|
ZipFile and the 7z file classes now implement Closeable and
|
can be used in try-with-resources constructs.
|
</action>
|
</release>
|
<release version="1.6" date="2013-10-26"
|
description="Release 1.6">
|
<action type="fix" date="2013-04-25" issue="COMPRESS-223"
|
due-to="Jeremy Gustie">
|
TarBuffer.tryToConsumeSecondEOFRecord could throw a
|
NullPointerException
|
</action>
|
<action type="add" date="2013-05-07" issue="COMPRESS-54"
|
due-to="Damjan Jovanovic">
|
Added support for 7z archives. Most compression algorithms
|
can be read and written, LZMA and encryption are only
|
supported when reading.
|
</action>
|
<action type="add" date="2013-05-19" issue="COMPRESS-226"
|
due-to="Damjan Jovanovic">
|
Added read-only support for ARJ archives that don't use
|
compression.
|
</action>
|
<action type="fix" date="2013-05-26" issue="COMPRESS-228">
|
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.
|
</action>
|
<action type="fix" date="2013-06-03" issue="COMPRESS-229"
|
due-to="Christoph Gysin">
|
TAR will now properly read the names of symbolic links with
|
long names that use the GNU variant to specify the long file
|
name.
|
</action>
|
<action type="fix" date="2013-06-04" issue="COMPRESS-227">
|
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.
|
</action>
|
<action type="update" date="2013-07-08" issue="COMPRESS-232"
|
due-to="BELUGA BEHR">
|
Readabilty patch to TarArchiveInputStream.
|
</action>
|
<action type="update" date="2013-08-08" issue="COMPRESS-234"
|
due-to="BELUGA BEHR">
|
Performance improvements to TarArchiveInputStream, in
|
particular to the skip method.
|
</action>
|
<action type="fix" date="2013-08-08" issue="COMPRESS-236"
|
due-to="Andrew Duffy">
|
CpioArchiveInputStream failed to read archives created by
|
Redline RPM.
|
</action>
|
<action type="fix" date="2013-08-09" issue="COMPRESS-237"
|
due-to="Emmanuel Bourg">
|
TarArchiveOutputStream now properly handles link names that
|
are too long to fit into a traditional TAR header.
|
</action>
|
<action type="add" date="2013-08-10">
|
DumpArchiveInputStream now supports an encoding parameter that
|
can be used to specify the encoding of file names.
|
</action>
|
<action type="add" date="2013-08-10">
|
The CPIO streams now support an encoding parameter that can be
|
used to specify the encoding of file names.
|
</action>
|
<action type="add" date="2013-09-22" issue="COMPRESS-111">
|
Read-only support for LZMA standalone compression has been added.
|
</action>
|
<action type="fix" date="2013-10-04" issue="COMPRESS-239">
|
The auto-detecting create*InputStream methods of Archive and
|
CompressorStreamFactory could fail to detect the format of
|
blocking input streams.
|
</action>
|
<action type="fix" date="2013-10-21" issue="COMPRESS-240"
|
due-to="Gary Gregory">
|
ZipEncodingHelper.isUTF8(String) does not check all UTF-8 aliases.
|
</action>
|
</release>
|
<release version="1.5" date="2013-03-14"
|
description="Release 1.5">
|
<action type="fix" date="2012-02-19" issue="COMPRESS-218"
|
due-to="Gili">
|
Typo in CompressorStreamFactory Javadoc
|
</action>
|
<action type="update" date="2012-07-08" issue="COMPRESS-188"
|
due-to="Harald Kuhn">
|
Improved exception message if a zip archive cannot be read
|
because of an unsupported compression method.
|
</action>
|
<action type="update" date="2012-07-07" issue="COMPRESS-192"
|
due-to="Jukka Zitting">
|
ArchiveStreamFactory has a setting for file name encoding that
|
sets up encoding for ZIP and TAR streams.
|
</action>
|
<action type="fix" date="2012-07-07" issue="COMPRESS-191"
|
due-to="Jukka Zitting">
|
ArchiveStreamFactory's tar stream detection created false
|
positives for AIFF files.
|
</action>
|
<action type="update" date="2012-07-07" issue="COMPRESS-191"
|
due-to="Jukka Zitting">
|
TarArchiveEntry now has a method to verify its checksum.
|
</action>
|
<action type="fix" date="2012-12-27" issue="COMPRESS-199"
|
due-to="Jukka Zitting">
|
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.
|
</action>
|
<action type="fix" date="2012-12-27" issue="COMPRESS-200"
|
due-to="Christian Schlichtherle">
|
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.
|
</action>
|
<action type="fix" date="2012-12-27" issue="COMPRESS-203">
|
Writing TAR PAX headers failed if the generated entry name
|
ended with a "/".
|
</action>
|
<action type="fix" date="2012-12-28" issue="COMPRESS-189"
|
due-to="Daniel Lowe">
|
ZipArchiveInputStream sometimes failed to provide input to the
|
Inflater when it needed it, leading to reads returning 0.
|
</action>
|
<action type="update" date="2013-01-01">
|
Split/spanned ZIP archives are now properly detected by
|
ArchiveStreamFactory but will cause an
|
UnsupportedZipFeatureException when read.
|
</action>
|
<action type="update" date="2013-01-01" issue="COMPRESS-208">
|
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.
|
</action>
|
<action type="update" date="2013-01-01" issue="COMPRESS-201">
|
TarArchiveEntry has a new constructor that allows setting
|
linkFlag and preserveLeadingSlashes at the same time.
|
</action>
|
<action type="update" date="2013-01-01" issue="COMPRESS-159">
|
ChangeSetPerformer has a new perform overload that uses a
|
ZipFile instance as input.
|
</action>
|
<action type="fix" date="2013-01-04" issue="COMPRESS-212">
|
TarArchiveInputStream ignored the encoding for GNU long name
|
entries.
|
</action>
|
<action type="update" date="2013-01-05" issue="COMPRESS-172"
|
due-to="Thomas Mair">
|
Garbage collection pressure has been reduced by reusing
|
temporary byte arrays in classes.
|
</action>
|
<action type="update" date="2013-01-08" issue="COMPRESS-210"
|
due-to="Julius Davies">
|
Can now handle zip extra field 0x5455 - Extended Timestamp.
|
</action>
|
<action type="update" date="2013-01-07" issue="COMPRESS-211"
|
due-to="Julius Davies">
|
handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
|
</action>
|
<action type="update" date="2013-01-07" issue="COMPRESS-213"
|
due-to="Julius Davies">
|
ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
|
</action>
|
<action type="update" date="2013-01-14" issue="COMPRESS-214"
|
due-to="Julius Davies">
|
better support for unix symlinks in ZipFile entries
|
</action>
|
<action type="update" date="2013-01-19" issue="COMPRESS-215"
|
due-to="Robin Power">
|
ZipFile's initialization has been improved for non-Zip64
|
archives.
|
</action>
|
<action type="fix" date="2013-01-20" issue="COMPRESS-206"
|
due-to="Peter De Maeyer">
|
TarArchiveInputStream could leave the second EOF record
|
inside the stream it had just finished reading.
|
</action>
|
<action type="fix" date="2013-01-20">
|
DumpArchiveInputStream no longer implicitly closes the
|
original input stream when it reaches the end of the
|
archive.
|
</action>
|
<action type="fix" date="2013-01-22">
|
ZipArchiveInputStream now consumes the remainder of the
|
archive when getNextZipEntry returns null.
|
</action>
|
<action type="fix" date="2013-01-27" issue="COMPRESS-205"
|
due-to="Daniel Lowe">
|
Unit tests could fail if the source tree was checked out to
|
a directory tree containign spaces.
|
</action>
|
<action type="update" date="2013-01-31">
|
Updated XZ for Java dependency to 1.2 as this version
|
provides proper OSGi manifest attributes.
|
</action>
|
<action type="fix" date="2013-02-20" issue="COMPRESS-219">
|
Fixed a potential ArrayIndexOutOfBoundsException when
|
reading STORED entries from ZipArchiveInputStream.
|
</action>
|
<action type="fix" date="2013-03-07" issue="COMPRESS-221">
|
CompressorStreamFactory can now be used without XZ for Java
|
being available.
|
</action>
|
<action type="add" date="2013-03-07" issue="COMPRESS-220">
|
CompressorStreamFactory has an option to create
|
decompressing streams that decompress the full input for
|
formats that support multiple concatenated streams.
|
</action>
|
</release>
|
<release version="1.4.1" date="2012-05-23"
|
description="Release 1.4.1">
|
<action type="fix" date="2012-05-20">
|
Ported libbzip2's fallback sort algorithm to
|
BZip2CompressorOutputStream to speed up compression in certain
|
edge cases.
|
Using specially crafted inputs this can be used as a denial
|
of service attack. See the security reports page for details.
|
</action>
|
</release>
|
<release version="1.4" date="2012-04-11"
|
description="Release 1.4">
|
<action issue="COMPRESS-183" type="fix" date="2012-03-24">
|
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.
|
</action>
|
<action issue="COMPRESS-184" type="fix" date="2012-03-23">
|
TarArchiveInputStream failed to parse PAX headers that
|
contained non-ASCII characters.
|
</action>
|
<action issue="COMPRESS-182" type="update" date="2012-03-02">
|
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.
|
</action>
|
<action issue="COMPRESS-181" type="update" date="2012-03-02">
|
Added a workaround for a Bug some tar implementations that add
|
a NUL byte as first byte in numeric header fields.
|
</action>
|
<action issue="COMPRESS-176" type="update" date="2012-02-28">
|
Added a workaround for a Bug in WinZIP which uses backslashes
|
as path separators in Unicode Extra Fields.
|
</action>
|
<action issue="COMPRESS-131" type="update" date="2012-02-23">
|
ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed.
|
</action>
|
<action issue="COMPRESS-178" type="fix" date="2012-02-23">
|
TarArchiveInputStream throws IllegalArgumentException instead of IOException
|
</action>
|
<action issue="COMPRESS-179" type="fix" date="2012-02-23">
|
TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long
|
</action>
|
<action issue="COMPRESS-175" type="fix" date="2012-02-22">
|
GNU Tar sometimes uses binary encoding for UID and GID
|
</action>
|
<action issue="COMPRESS-171" type="fix" date="2012-01-29">
|
ArchiveStreamFactory.createArchiveInputStream would claim
|
short text files were TAR archives.
|
</action>
|
<action issue="COMPRESS-156" type="add" date="2011-11-02">
|
Support for the XZ format has been added.
|
</action>
|
<action issue="COMPRESS-146" type="update" date="2011-11-07">
|
BZip2CompressorInputStream now optionally supports reading of
|
concatenated .bz2 files.
|
</action>
|
<action issue="COMPRESS-154" type="update" date="2011-11-09">
|
GZipCompressorInputStream now optionally supports reading of
|
concatenated .gz files.
|
</action>
|
<action issue="COMPRESS-164" type="fix" date="2011-12-05">
|
ZipFile didn't work properly for archives using unicode extra
|
fields rather than UTF-8 filenames and the EFS-Flag.
|
</action>
|
<action issue="COMPRESS-16" type="update" date="2011-12-07">
|
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.
|
</action>
|
<action issue="COMPRESS-165" type="update" date="2011-12-08">
|
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.
|
</action>
|
<action issue="COMPRESS-166" type="update" date="2011-12-08">
|
The tar package can now use the POSIX/PAX variant for writing
|
entries with names longer than 100 characters.
|
</action>
|
<action issue="COMPRESS-169" type="fix" date="2011-12-22">
|
For corrupt archives ZipFile would throw a RuntimeException in
|
some cases and an IOException in others. It will now
|
consistently throw an IOException.
|
</action>
|
</release>
|
<release version="1.3" date="2011-11-01"
|
description="Release 1.3 - API compatible to 1.2 but requires Java5 at runtime">
|
<action issue="COMPRESS-142" type="add" date="2011-09-14">
|
Support for the Pack200 format has been added.
|
</action>
|
<action issue="COMPRESS-132" type="add" date="2011-08-17">
|
Read-only support for the format used by the Unix dump(8) tool
|
has been added.
|
</action>
|
<action issue="COMPRESS-36" type="update" date="2011-08-15">
|
The ZIP package now supports Zip64 extensions.
|
</action>
|
<action issue="COMPRESS-144" type="update" date="2011-08-08">
|
The AR package now supports the BSD dialect of storing file
|
names longer than 16 chars (both reading and writing).
|
</action>
|
<action type="fix" date="2011-08-08">
|
BZip2CompressorInputStream's getBytesRead method always
|
returned 0.
|
</action>
|
<action issue="COMPRESS-152" type="fix" date="2011-08-03">
|
ZipArchiveInputStream and ZipArchiveOutputStream could leak
|
resources on some JDKs.
|
</action>
|
<action issue="COMPRESS-160" type="fix" date="2011-10-23">
|
TarArchiveOutputStream's getBytesWritten method didn't count
|
correctly.
|
</action>
|
</release>
|
<release version="1.2" date="2011-07-31"
|
description="Release 1.2 - a bugfix release, the last release expected to be compatible with Java 1.4">
|
<action issue="COMPRESS-129" type="fix" date="2011-07-26">
|
ZipArchiveInputStream could fail with a "Truncated ZIP" error
|
message for entries between 2 GByte and 4 GByte in size.
|
</action>
|
<action issue="COMPRESS-145" type="fix" date="2011-07-23"
|
due-tue="Patrick Dreyer">
|
TarArchiveInputStream now detects sparse entries using the
|
oldgnu format and properly reports it cannot extract their
|
contents.
|
</action>
|
<action issue="COMPRESS-123" type="add" date="2011-07-23">
|
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.
|
</action>
|
<action issue="COMPRESS-130" type="fix" date="2011-07-20">
|
The Javadoc for ZipArchiveInputStream#skip now matches the
|
implementation, the code has been made more defensive.
|
</action>
|
<action issue="COMPRESS-140" type="fix" date="2011-07-20"
|
due-to="Trejkaz">
|
ArArchiveInputStream fails if entries contain only blanks for
|
userId or groupId.
|
</action>
|
<action issue="COMPRESS-139" type="fix" date="2011-07-13">
|
ZipFile may leak resources on some JDKs.
|
</action>
|
<action type="update" date="2011-04-18">
|
ZipFile now implements finalize which closes the underlying
|
file.
|
</action>
|
<action issue="COMPRESS-117" type="update" date="2011-03-23">
|
Certain tar files not recognised by ArchiveStreamFactory.
|
</action>
|
<action issue="COMPRESS-125" type="fix" date="2011-03-23">
|
BZip2CompressorInputStream throws IOException if underlying stream returns available() == 0.
|
Removed the check.
|
</action>
|
<action issue="COMPRESS-127" type="fix" date="2011-03-23">
|
Calling close() on inputStream returned by CompressorStreamFactory.createCompressorInputStream()
|
does not close the underlying input stream.
|
</action>
|
<action issue="COMPRESS-122" type="add" date="2010-10-29">
|
TarArchiveEntry provides access to the flags that determine
|
whether it is an archived symbolic link, pipe or other
|
"uncommon" file system object.
|
</action>
|
<action issue="COMPRESS-119" type="fix" date="2010-10-26">
|
TarArchiveOutputStream#finish now writes all buffered data to the stream
|
</action>
|
</release>
|
<release version="1.1" date="2010-08-13" description="Release 1.1">
|
<action issue="COMPRESS-72" type="fix" date="2010-06-02">
|
Move acknowledgements from NOTICE to README
|
</action>
|
<action issue="COMPRESS-113" type="fix" date="2010-06-02">
|
TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size
|
</action>
|
<action issue="COMPRESS-108" type="add" date="2010-05-23">
|
Command-line interface to list archive contents.
|
Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc]
|
</action>
|
<action issue="COMPRESS-118" type="fix" date="2010-05-17">
|
TarUtils.parseName does not properly handle characters outside the range 0-127
|
</action>
|
<action issue="COMPRESS-112" type="update" date="2010-05-13">
|
ArArchiveInputStream does not handle GNU extended filename records (//)
|
</action>
|
<action issue="COMPRESS-109" type="add" date="2010-05-10">
|
Tar implementation does not support Pax headers
|
Added support for reading pax headers.
|
Note: does not support global pax headers
|
</action>
|
<action issue="COMPRESS-107" type="fix" date="2010-05-10">
|
ArchiveStreamFactory does not recognise tar files created by Ant
|
</action>
|
<action issue="COMPRESS-110" type="fix" date="2010-05-09">
|
Support "ustar" prefix field, which is used when file paths are longer
|
than 100 characters.
|
</action>
|
<action type="update" date="2010-04-19" issue="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.
|
</action>
|
<action type="add" date="2010-03-19" issue="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.
|
</action>
|
<action type="fix" date="2010-03-12" issue="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.
|
</action>
|
<action type="fix" date="2010-03-12" issue="COMPRESS-101">
|
ZipArchiveInputStream should now properly read archives that
|
use data descriptors but without the "unofficial" signature.
|
</action>
|
<action type="add" date="2010-03-09" issue="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).
|
</action>
|
<action type="add" date="2010-03-08" issue="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.
|
</action>
|
<action type="add" date="2010-02-19">
|
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.
|
</action>
|
<action type="add" date="2010-02-19" issue="COMPRESS-89">
|
The ZIP classes now detect encrypted entries.
|
</action>
|
<action type="update" date="2010-02-18" issue="COMPRESS-79">
|
Move DOS/Java time conversions into Zip utility class.
|
</action>
|
<action type="fix" date="2010-02-18" issue="COMPRESS-74">
|
ZipArchiveInputStream failed to update the number of bytes
|
read properly.
|
</action>
|
<action type="fix" date="2010-02-18">
|
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.
|
</action>
|
<action type="fix" date="2010-02-18" issue="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.
|
</action>
|
<action type="fix" date="2010-02-16" issue="COMPRESS-73">
|
ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
|
more lenient when parsing extra fields.
|
</action>
|
<action issue="COMPRESS-75" type="update" date="2010-02-12">
|
ZipArchiveInputStream does not show location in file where a problem occurred.
|
</action>
|
<action type="fix" date="2010-02-12" issue="COMPRESS-82">
|
cpio is terribly slow.
|
Documented that buffered streams are needed for performance
|
</action>
|
<action type="add" date="2010-02-12" issue="COMPRESS-97">
|
Added autodetection of compression format to
|
CompressorStreamFactory.
|
</action>
|
<action type="fix" date="2010-02-12">
|
Improved exception message if the extra field data in ZIP
|
archives cannot be parsed.
|
</action>
|
<action type="fix" date="2010-02-11" issue="COMPRESS-17">
|
Tar format unspecified - current support documented.
|
</action>
|
<action type="add" issue="COMPRESS-95" date="2010-01-29"
|
due-to="Joerg Bellmann">
|
Improve ExceptionMessages in ArchiveStreamFactory
|
</action>
|
<action type="fix" issue="COMPRESS-94" date="2010-01-07"
|
due-to="Anon Devs">
|
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.
|
</action>
|
<action type="fix" issue="COMPRESS-87" date="2009-10-30"
|
due-to="Antoni Mylka">
|
ZipArchiveInputStream could repeatedly return 0 on read() when
|
the archive was truncated.
|
</action>
|
<action type="fix" issue="COMPRESS-86" date="2009-10-08">
|
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.
|
</action>
|
<action type="add" date="2009-08-25">
|
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.
|
</action>
|
<action issue="COMPRESS-83" type="fix" date="2009-08-01">
|
Delegate all read and write methods in GZip stream in order to
|
speed up operations.
|
</action>
|
<action type="add" date="2009-08-01">
|
ArchiveEntry now has a getLastModifiedDate method.
|
</action>
|
<action type="fix" date="2009-08-01">
|
The ar and cpio streams now properly read and write last
|
modified times.
|
</action>
|
<action issue="COMPRESS-81" type="fix" date="2009-06-30">
|
TarOutputStream can leave garbage at the end of the archive
|
</action>
|
<action issue="COMPRESS-78" type="add" date="2009-06-30"
|
due-to="Jukka Zitting">
|
Add a BZip2Utils class modelled after GZipUtils
|
</action>
|
</release>
|
<release version="1.0" date="2009-05-21" description="First Public Release">
|
<action dev="all" type="add" date="2009-05-21">
|
Initial release
|
</action>
|
<action dev="sgoeschl" type="fix">
|
Updating the pom.xml for preparing a move to commons-proper
|
</action>
|
</release>
|
</body>
|
</document>
|