blob: d91d24e0327b91b697e1f089fc82ccf427d1cae3 [file] [log] [blame]
<?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.6" date="not released, yet"
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 read-only support for 7z archives that don't use
LZMA compression.
</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 default encoding of file names.
</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>