Home | History | Annotate | Download | only in changes
      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <!--
      3  Licensed to the Apache Software Foundation (ASF) under one
      4  or more contributor license agreements.  See the NOTICE file
      5  distributed with this work for additional information
      6  regarding copyright ownership.  The ASF licenses this file
      7  to you under the Apache License, Version 2.0 (the
      8  "License"); you may not use this file except in compliance
      9  with the License.  You may obtain a copy of the License at
     10 
     11    http://www.apache.org/licenses/LICENSE-2.0
     12 
     13  Unless required by applicable law or agreed to in writing,
     14  software distributed under the License is distributed on an
     15  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     16  KIND, either express or implied.  See the License for the
     17  specific language governing permissions and limitations
     18  under the License.
     19 -->
     20 
     21 <!--
     22 This file is also used by the maven-changes-plugin to generate the release notes.
     23 Useful ways of finding items to add to this file are:
     24 
     25 1.  Add items when you fix a bug or add a feature (this makes the
     26 release process easy :-).
     27 
     28 2.  Do a JIRA search for tickets closed since the previous release.
     29 
     30 3.  Use the report generated by the maven-changelog-plugin to see all
     31 SVN commits. TBA how to use this with SVN.
     32 
     33 To generate the release notes from this file:
     34 
     35 mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n]
     36 
     37 The <action> type attribute can be add,update,fix,remove.
     38 -->
     39 
     40 <document>
     41   <properties>
     42     <title>commons-compress</title>
     43   </properties>
     44   <body>
     45     <release version="1.19" date="not released, yet"
     46              description="Release 1.19">
     47       <action type="fix" date="2018-09-07">
     48         ZipArchiveInputStream could forget the compression level has
     49         changed under certain circumstances.
     50       </action>
     51     </release>
     52     <release version="1.18" date="2018-08-16"
     53              description="Release 1.18">
     54       <action type="fix" date="2018-06-15" due-to="DidierLoiseau">
     55         The example Expander class has been vulnerable to a path
     56         traversal in the edge case that happens when the target
     57         directory has a sibling directory and the name of the target
     58         directory is a prefix of the sibling directory's name.
     59       </action>
     60       <action issue="COMPRESS-456" type="fix" date="2018-06-19">
     61         Changed the OSGi Import-Package to also optionally import
     62         javax.crypto so encrypted archives can be read.
     63       </action>
     64       <action issue="COMPRESS-457" type="fix" date="2018-07-01">
     65         Changed various implementations of the close method to better
     66         ensure all held resources get closed even if exceptions are
     67         thrown during the closing the stream.
     68       </action>
     69       <action issue="COMPRESS-455" type="fix" date="2018-07-01">
     70         ZipArchiveInputStream can now detect the APK Signing Block
     71         used in signed Android APK files and treats it as an "end of
     72         archive" marker.
     73       </action>
     74       <action issue="COMPRESS-459" type="fix" date="2018-07-11"
     75               due-to="Jens Reimann">
     76         The cpio streams didn't handle archives using a multi-byte
     77         encoding properly.
     78       </action>
     79       <action issue="COMPRESS-460" type="add" date="2018-07-28"
     80               due-to="Carmi Grushko">
     81         It is now possible to specify the arguments of zstd-jni's
     82         ZstdOutputStream constructors via Commons Compress as well.
     83       </action>
     84       <action issue="COMPRESS-463" type="fix" date="2018-08-09">
     85         ZipArchiveInputStream#read would silently return -1 on a
     86         corrupted stored entry and even return > 0 after hitting the
     87         end of the archive.
     88       </action>
     89       <action issue="COMPRESS-462" type="fix" date="2018-08-10">
     90         ArArchiveInputStream#read would allow to read from the stream
     91         without opening an entry at all.
     92       </action>
     93     </release>
     94     <release version="1.17" date="2018-06-03"
     95              description="Release 1.17">
     96       <action type="fix" date="2018-02-06">
     97         Removed the objenesis dependency from the pom as it is not
     98         needed at all.
     99       </action>
    100       <action issue="COMPRESS-446" type="fix" date="2018-03-29">
    101         Fixed resource leak in ParallelScatterZipCreator#writeTo.
    102       </action>
    103       <action type="update" date="2018-04-01" due-to="Marchenko Sergey">
    104         Fixed some code examples.
    105         Github Pull Request #63.
    106       </action>
    107       <action issue="COMPRESS-447" type="fix" date="2018-04-22">
    108         Certain errors when parsing ZIP extra fields in corrupt
    109         archives are now turned into ZipException, they used to
    110         manifest as ArrayIndexOutOfBoundsException before.
    111       </action>
    112       <action issue="COMPRESS-445" type="update" date="2018-04-22"
    113               due-to="Andreas Beeker">
    114         The streams returned by ZipFile and most other decompressing
    115         streams now provide information about the number of compressed
    116         and uncompressed bytes read so far. This may be used to detect
    117         a ZipBomb if the compression ratio exceeds a certain
    118         threshold, for example.
    119         For SevenZFile a new method returns the statistics for the
    120         current entry.
    121       </action>
    122       <action issue="COMPRESS-443" type="add" date="2018-04-25">
    123         Added a unit test that is supposed to fail if we break the
    124         OSGi manifest entries again.
    125       </action>
    126       <action issue="COMPRESS-449" type="add" date="2018-05-02">
    127         Add a new SkipShieldingInputStream class that can be used with
    128         streams that throw an IOException when skip is invoked.
    129       </action>
    130       <action issue="COMPRESS-451" type="fix" date="2018-05-04">
    131         IOUtils.copy now verifies the buffer size is bigger than 0.
    132       </action>
    133       <action issue="COMPRESS-452" type="add" date="2018-05-09">
    134         New constructors have been added to SevenZFile that accept
    135         char[]s rather than byte[]s in order to avoid a common error
    136         of using the wrong encoding when creating the byte[].  This
    137         change may break source compatibility for client code that
    138         uses one of the constructors expecting a password and passes
    139         in null as password. We recommend to change the code to use a
    140         constructor without password argument.
    141       </action>
    142       <action issue="COMPRESS-453" type="update" date="2018-05-24">
    143         Added a workaround for a bug in AdoptOpenJDK for S/390 to
    144         BZip2CompressorInputStream.
    145       </action>
    146       <action issue="COMPRESS-454" type="fix" date="2018-05-30">
    147         ZipArchiveInputStream failed to read some files with stored
    148         entries using a data descriptor.
    149       </action>
    150     </release>
    151     <release version="1.16.1" date="2018-02-10"
    152              description="Release 1.16.1">
    153       <action issue="COMPRESS-442" type="fix" date="2018-02-06">
    154         Fixed the OSGi manifest entry for imports that has been broken
    155         in 1.16.
    156       </action>
    157     </release>
    158     <release version="1.16" date="2018-02-05"
    159              description="Release 1.16">
    160       <action issue="COMPRESS-423" type="add" date="2017-10-17"
    161               due-to="Andre F de Miranda">
    162         Add read-only support for Zstandard compression based on the
    163         Zstd-jni project.
    164       </action>
    165       <action issue="COMPRESS-425" type="add" date="2017-10-22">
    166         Added auto-detection for Zstandard compressed streams.
    167       </action>
    168       <action issue="COMPRESS-430" type="fix" date="2017-11-25"
    169               due-to="Bruno P. Kinoshita">
    170         Synchronized iteration over a synchronizedList in ParallelScatterZipCreator.
    171       </action>
    172       <action issue="COMPRESS-432" type="fix" date="2017-12-22">
    173         ZipFile could get stuck in an infinite loop when parsing ZIP
    174         archives with certain strong encryption headers.
    175       </action>
    176       <action issue="COMPRESS-435" type="update" date="2017-12-27"
    177               due-to="BELUGA BEHR">
    178         Replaces instanceof checks with a type marker in LZ77 support code.
    179       </action>
    180       <action issue="COMPRESS-426" type="add" date="2017-12-28">
    181         Added write-support for Zstandard compression.
    182       </action>
    183       <action issue="COMPRESS-424" type="fix" date="2017-12-30">
    184         Added improved checks to detect corrupted bzip2 streams and
    185         throw the expected IOException rather than obscure
    186         RuntimeExceptions.
    187       </action>
    188       <action type="update" date="2018-01-04">
    189         Updated XZ for Java dependency to 1.8 in order to pick up bug
    190         fix to LZMA2InputStream's available method.
    191       </action>
    192       <action type="update" date="2018-01-05" issue="COMPRESS-429"
    193               due-to="Damiano Albani">
    194         ZipArchiveEntry now exposes how the name or comment have been
    195         determined when the entry was read.
    196       </action>
    197       <action issue="COMPRESS-380" type="add" date="2018-01-09"
    198               due-to="Christian Marquez Grabia">
    199         Added read-only DEFLATE64 support to ZIP archives and as
    200         stand-alone CompressorInputStream.
    201       </action>
    202       <action issue="COMPRESS-438" type="update" date="2018-01-10">
    203         ZipFile.getInputStream will now always buffer the stream
    204         internally in order to improve read performance.
    205       </action>
    206       <action issue="COMPRESS-440" type="update" date="2018-01-12"
    207               due-to="Dawid Weiss">
    208         Speed improvement for DEFLATE64 decompression.
    209       </action>
    210       <action issue="COMPRESS-437" type="add" date="2018-01-13">
    211         Added read-only DEFLATE64 support to 7z archives.
    212       </action>
    213       <action issue="COMPRESS-436" type="update" date="2018-01-14">
    214         Added a few extra sanity checks for the rarer compression
    215         methods used in ZIP archives.
    216       </action>
    217       <action issue="COMPRESS-441" type="update" date="2018-01-14">
    218         Simplified the special handling for the dummy byte required by
    219         zlib when using java.util.zip.Inflater.
    220       </action>
    221       <action type="update" date="2018-01-18" due-to="Shahab Kondri">
    222         Various code cleanups.
    223         Github Pull Request #61.
    224       </action>
    225       <action type="update" date="2018-01-29">
    226         TarArchiveEntry's preserveLeadingSlashes constructor argument
    227         has been renamed and can now also be used to preserve the
    228         drive letter on Windows.
    229       </action>
    230     </release>
    231     <release version="1.15" date="2017-10-17"
    232              description="Release 1.15
    233 ----------------------------------------
    234 
    235 TarArchiveOutputStream now ensures record size is 512 and block size is
    236 a multiple of 512 as any other value would create invalid tar
    237 archives. This may break compatibility for code that deliberately
    238 wanted to create such files.">
    239       <action issue="COMPRESS-394" type="fix" date="2017-05-22">
    240         Make sure "version needed to extract" in local file header and
    241         central directory of a ZIP archive agree with each other.
    242         Also ensure the version is set to 2.0 if DEFLATE is used.
    243       </action>
    244       <action issue="COMPRESS-395" type="fix" date="2017-05-22">
    245         Don't use a data descriptor in ZIP archives when copying a raw
    246         entry that already knows its size and CRC information.
    247       </action>
    248       <action issue="COMPRESS-413" type="fix" date="2017-05-22" due-to="Simon Spero">
    249         Travis build redundantly repeats compilation and tests redundantly #43.      
    250       </action>
    251       <action issue="COMPRESS-397" type="add" date="2017-05-22">
    252         Added magic MANIFEST entry Automatic-Module-Name so the module
    253         name will be org.apache.commons.compress when the jar is used
    254         as an automatic module in Java9.
    255       </action>
    256       <action issue="COMPRESS-396" type="fix" date="2017-05-23">
    257         The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for
    258         Java.
    259       </action>
    260       <action issue="COMPRESS-406" type="fix" date="2017-06-12"
    261               due-to="Simon Spero">
    262         BUILDING.md now passes the RAT check.
    263       </action>
    264       <action issue="COMPRESS-405" type="add" date="2017-06-15"
    265               due-to="Simon Spero ">
    266         Added a new utility class FixedLengthBlockOutputStream that
    267         can be used to ensure writing always happens in blocks of a
    268         given size.
    269       </action>
    270       <action issue="COMPRESS-412" type="fix" date="2017-06-17"
    271               due-to="Michael Hausegger">
    272         Made sure ChecksumCalculatingInputStream receives valid
    273         checksum and input stream instances via the constructor.
    274       </action>
    275       <action issue="COMPRESS-407" type="fix" date="2017-06-24"
    276               due-to="Simon Spero ">
    277         TarArchiveOutputStream now verifies the block and record sizes
    278         specified at construction time are compatible with the tar
    279         specification. In particular 512 is the only record size
    280         accepted and the block size must be a multiple of 512.
    281         At the same time the default block size in
    282         TarArchiveOutputStream has been changed from 10240 to 512
    283         bytes.
    284       </action>
    285       <action issue="COMPRESS-400" type="add" date="2017-06-26"
    286               due-to="Simon Spero ">
    287         It is now possible to specify/read custom PAX headers when
    288         writing/reading tar archives.
    289       </action>
    290       <action issue="COMPRESS-415" type="fix" date="2017-06-27">
    291         Fixed class names of CpioArchiveEntry and
    292         CpioArchiveInputStream in various Javadocs.
    293       </action>
    294       <action issue="COMPRESS-416" type="fix" date="2017-07-04"
    295               due-to="Simon Spero ">
    296         The code of the extended timestamp zip extra field incorrectly
    297         assumed the time was stored as unsigned 32-bit int and thus
    298         created incorrect results for years after 2037.
    299       </action>
    300       <action issue="COMPRESS-410" type="fix" date="2017-07-05"
    301               due-to="Simon Spero ">
    302         Removed ZipEncoding code that became obsolete when we started
    303         to require Java 5 as baseline long ago.
    304       </action>
    305       <action issue="COMPRESS-417" type="fix" date="2017-07-19">
    306         The tar package will no longer try to parse the major and
    307         minor device numbers unless the entry represents a character
    308         or block special file.
    309       </action>
    310       <action issue="COMPRESS-421" type="fix" date="2017-10-06"
    311               due-to="Roel Spilker">
    312         When reading tar headers with name fields containing embedded
    313         NULs, the name will now be terminated at the first NUL byte.
    314       </action>
    315       <action issue="COMPRESS-409" type="fix" date="2017-10-08">
    316         Simplified TarArchiveOutputStream by replacing the internal
    317         buffering with new class FixedLengthBlockOutputStream.
    318       </action>
    319     </release>
    320     <release version="1.14" date="2017-05-14"
    321              description="Release 1.14">
    322       <action issue="COMPRESS-378" type="fix" date="2017-01-09">
    323         SnappyCompressorInputStream slides the window too early
    324         leading to ArrayIndexOutOfBoundsExceptions for some streams.
    325       </action>
    326       <action issue="COMPRESS-246" type="add" date="2017-01-10">
    327         Added write support for Snappy.
    328       </action>
    329       <action issue="COMPRESS-358" type="update" date="2017-01-10">
    330         The blocksize for FramedSnappyCompressorInputStream can now be
    331         configured as some IWA files seem to be using blocks larger
    332         than the default 32k.
    333       </action>
    334       <action issue="COMPRESS-379" type="fix" date="2017-01-15"
    335               due-to="Guillaume Bou">
    336         ZipArchiveEntry#isUnixSymlink now only returns true if the
    337         corresponding link flag is the only file-type flag set.
    338       </action>
    339       <action issue="COMPRESS-271" type="add" date="2017-02-07">
    340         Added support for LZ4 (block and frame format).
    341       </action>
    342       <action type="update" date="2017-02-15" due-to="Thomas Meyer">
    343         BZip2CompressorInputstream now uses BitInputStream internally.
    344         Pull Request #13.
    345       </action>
    346       <action type="fix" date="2017-03-29" due-to="Daniel Collin">
    347         Fixed an integer overflow in CPIO's CRC calculation.
    348         Pull Request #17.
    349       </action>
    350       <action issue="COMPRESS-385" type="add" date="2017-04-18">
    351         Add static detect(InputStream in) to CompressorStreamFactory
    352         and ArchiveStreamFactory
    353       </action>
    354       <action issue="COMPRESS-387" type="fix" date="2017-04-18">
    355         Make unit tests work on Windows paths with spaces in their names.
    356       </action>
    357       <action issue="COMPRESS-388" type="update" date="2017-04-25"
    358               due-to="Zbynek Vyskovsky">
    359         Improved performance for concurrent reads from ZipFile when
    360         reading from a file.
    361       </action>
    362       <action issue="COMPRESS-382" type="add" date="2017-04-25"
    363               due-to="Tim Allison">
    364         Added a way to limit amount of memory ZCompressorStream may
    365         use.
    366       </action>
    367       <action issue="COMPRESS-386" type="add" date="2017-04-25"
    368               due-to="Tim Allison">
    369         Added a way to limit amount of memory ZCompressorStream may
    370         use.
    371       </action>
    372       <action issue="COMPRESS-382" type="add" date="2017-04-25"
    373               due-to="Tim Allison">
    374         Added a way to limit amount of memory LZMACompressorStream and
    375         XZCompressorInputStream may use.
    376       </action>
    377       <action issue="COMPRESS-389" type="fix" date="2017-04-26">
    378         Internal location pointer in ZipFile could get incremented
    379         even if nothing had been read.
    380       </action>
    381       <action issue="COMPRESS-392" type="add" date="2017-05-02" due-to="Philippe Mouawad">
    382         Add Brotli decoder based on the Google Brotli library.
    383       </action>
    384       <action issue="COMPRESS-390" type="add" date="2017-05-04"
    385               due-to="Zbynek Vyskovsky">
    386         ZipEntry now exposes its data offset.
    387       </action>
    388       <action issue="COMPRESS-393" type="fix" date="2017-05-07">
    389         LZMACompressorOutputStream#flush would throw an exception
    390         rather than be the NOP it promised to be.
    391       </action>
    392       <action issue="COMPRESS-391" type="add" date="2017-05-11"
    393               due-to="Zbynek Vyskovsky">
    394         Using ZipArchiveEntry's setAlignment it is now possible to
    395         ensure the data offset of an entry starts at a file position
    396         that at word or page boundaries.
    397         A new extra field has been added for this purpose.
    398       </action>
    399     </release>
    400     <release version="1.13" date="2016-12-29"
    401              description="Release 1.13 - API compatible to 1.12 but requires Java 7 at runtime.">
    402       <action issue="COMPRESS-360" type="update" date="2016-06-25" dev="ggregory">
    403         Update Java requirement from 6 to 7.
    404       </action>
    405       <action issue="COMPRESS-363" type="fix" date="2016-07-01">
    406         BitInputStream could return bad results when overflowing
    407         internally - if two consecutive reads tried to read more than
    408         64 bits.
    409       </action>
    410       <action issue="COMPRESS-366" type="update" date="2016-10-07">
    411         Clarified which TarArchiveEntry methods are useless for
    412         entries read from an archive.
    413       </action>
    414       <action issue="COMPRESS-364" type="fix" date="2016-10-07"
    415               due-to="Mike Mole">
    416         ZipArchiveInputStream.closeEntry does not properly advance to
    417         next entry if there are junk bytes at end of data section
    418       </action>
    419       <action issue="COMPRESS-327" type="add" date="2016-10-12">
    420         SevenZFile, SevenZOutputFile, ZipFile and
    421         ZipArchiveOutputStream can now work on non-file resources if
    422         they can be accessed via SeekableByteChannel.
    423       </action>
    424       <action issue="COMPRESS-368" type="add" date="2016-11-15">
    425         Allow compressor extensions through a standard JRE ServiceLoader.
    426       </action>
    427       <action issue="COMPRESS-369" type="add" date="2016-11-15">
    428         Allow archive extensions through a standard JRE ServiceLoader.
    429       </action>
    430       <action issue="COMPRESS-373" type="add" date="2016-11-29">
    431         Add write support for the legacy LZMA format, this requires XZ
    432         for Java 1.6.
    433       </action>
    434       <action issue="COMPRESS-374" type="add" date="2016-11-29">
    435         Add write support for the legacy LZMA stream to 7z, this
    436         requires XZ for Java 1.6.
    437       </action>
    438       <action issue="COMPRESS-375" type="add" date="2016-12-04"
    439               due-to="Plamen Totev">
    440         Allow the clients of ParallelScatterZipCreator to provide
    441         ZipArchiveEntryRequestSupplier.
    442       </action>
    443       <action issue="COMPRESS-367" type="fix" date="2016-12-09"
    444               due-to="Mike Mole">
    445         ZipArchiveInputStream now throws an Exception if it encounters
    446         a broken ZIP archive rather than signaling end-of-archive.
    447       </action>
    448       <action issue="COMPRESS-377" type="fix" date="2016-12-20">
    449         ScatterZipOutputStream didn't close the StreamCompressor
    450         causing a potential resource leak.
    451       </action>
    452       <action issue="COMPRESS-372" type="add" date="2016-12-20">
    453         Add a version-independent link to the API docs of the latest
    454         release.
    455       </action>
    456     </release>
    457     <release version="1.12" date="2016-06-21"
    458              description="Release 1.12 - API compatible to 1.11 but requires Java 6 at runtime.
    459 ------------
    460 
    461 
    462 
    463 Release 1.12 changes the behavior of BZip2CompressorOutputStream's
    464 finalize method so that it no longer invokes finish. This is going to
    465 break code that relied on the finalizer to clean up an unfinished
    466 stream. The code will need to be changed to call finish or
    467 close itself. Note that a finalizer is not guaranteed to run, so
    468 the feature was not 100% effective in any case.
    469 ">
    470       <action issue="COMPRESS-349" type="update" date="2016-04-09" dev="ggregory">
    471         Update requirement from Java 5 to 6.
    472       </action>
    473       <action issue="COMPRESS-350" type="update" date="2016-04-09" dev="ggregory">
    474         TarArchiveEntry wastefully allocates empty arrays.
    475       </action>
    476       <action issue="COMPRESS-348" type="fix" date="2016-04-24">
    477         SevenZFile.read() throws an IllegalStateException for empty entries.
    478       </action>
    479       <action issue="COMPRESS-353" type="update" date="2016-05-06" dev="ggregory">
    480         Javadoc for BZip2CompressorInputStream(InputStream, boolean) should refer to IOEx, not NPE.
    481       </action>
    482       <action issue="COMPRESS-354" type="update" date="2016-05-16">
    483         PureJavaCrc32C in the snappy package is now final so it is now
    484         safe to call a virtual method inside the constructor.
    485       </action>
    486       <action issue="COMPRESS-355" type="fix" date="2016-05-20"
    487               due-to="Jeremy Gustie">
    488         TarArchiveInputStream failed to parse PAX headers that
    489         included blank lines.
    490       </action>
    491       <action issue="COMPRESS-356" type="fix" date="2016-05-20"
    492               due-to="Jeremy Gustie">
    493         TarArchiveInputStream failed to parse PAX headers whose tar
    494         entry name ended with a slash.
    495       </action>
    496       <action issue="COMPRESS-352" type="add" date="2016-05-22">
    497         FramedSnappyCompressorInputStream now supports the dialect of
    498         Snappy used by the IWA files contained within the zip archives
    499         used in Apple's iWork 13 files.
    500       </action>
    501       <action issue="COMPRESS-351" type="update" date="2016-06-07">
    502         ZipArchiveInputStream and CpioArchiveInputStream could throw
    503         exceptions who's messages contained potentially corrupt entry
    504         names read from a broken archive. They will now sanitize the
    505         names by replacing unprintable characters and restricting the
    506         length to 255 characters.
    507       </action>
    508       <action issue="COMPRESS-357" type="update" date="2016-06-15">
    509         BZip2CompressorOutputStream no longer tries to finish the
    510         output stream in finalize. This is a breaking change for code
    511         that relied on the finalizer.
    512       </action>
    513     </release>
    514     <release version="1.11" date="2016-04-06"
    515              description="Release 1.11">
    516       <action issue="COMPRESS-347" type="add" date="2016-03-23">
    517         TarArchiveInputStream now supports reading global PAX headers.
    518       </action>
    519       <action issue="COMPRESS-346" type="add" date="2016-03-23">
    520         The PAX headers for sparse entries written by star are now
    521         applied.
    522       </action>
    523       <action issue="COMPRESS-345" type="add" date="2016-03-23">
    524         GNU sparse files using one of the PAX formats are now
    525         detected, but cannot be extracted.
    526       </action>
    527       <action issue="COMPRESS-344" type="fix" date="2016-03-22">
    528         ArArchiveInputStream can now read GNU extended names that are
    529         terminated with a NUL byte rather than a linefeed.
    530       </action>
    531       <action issue="COMPRESS-341" type="add" date="2016-03-20">
    532         New method SevenZFile.getEntries can be used to list the
    533         contents of a 7z archive.
    534       </action>
    535       <action issue="COMPRESS-343" type="fix" date="2016-03-17"
    536               due-to="Rene Preissel">
    537         Native Memory Leak in Sevenz-DeflateDecoder.
    538       </action>
    539       <action type="add" date="2016-03-05"
    540               due-to="Matt Hovey">
    541         When using Zip64Mode.Always also use ZIP64 extensions inside
    542         the central directory.
    543         GitHub Pull Request #10
    544       </action>
    545       <action issue="COMPRESS-340" type="fix" date="2016-02-24"
    546               due-to="Dawid Weiss">
    547         SevenZFile will now only try to drain an entry's content when
    548         moving on to the next entry if data is read from the next
    549         entry. This should improve performance for applications that
    550         try to skip over entries.
    551       </action>
    552       <action issue="COMPRESS-336" type="fix" date="2016-02-14">
    553         file names of tar archives using the xstar format are now
    554         parsed properly.
    555       </action>
    556       <action issue="COMPRESS-335" type="fix" date="2016-02-05">
    557         checksums of tars that pad the checksum field to the left are
    558         now calculated properly.
    559       </action>
    560       <action issue="COMPRESS-334" type="fix" date="2016-02-05"
    561               due-to="Jeremy Gustie">
    562         ArArchiveInputStream failed to read past the first entry when
    563         BSD long names have been used.
    564       </action>
    565       <action issue="COMPRESS-333" type="fix" date="2016-02-03" due-to="Dawid Weiss">
    566         Added buffering for random access which speeds up 7Z support.
    567       </action>
    568       <action issue="COMPRESS-331" type="fix" date="2016-01-31">
    569         The checksum validation of TararchiveEntry is now as strict as
    570         the validation of GNU tar, which eliminates a few cases of
    571         false positives of ArchiveStreamFactory.
    572         This behavior is a breaking change since the check has become
    573         more strict but any archive that fails the checksum test now
    574         would also fail it when extracted with other tools and must be
    575         considered an invalid archive.
    576       </action>
    577       <action issue="COMPRESS-323" type="add" date="2016-01-29">
    578         ZipFile.getRawInputStream() is now part of the public API
    579       </action>
    580       <action issue="COMPRESS-332" type="fix" date="2016-01-29">
    581         SnappyCompressorInputStream and
    582         FramedSnappyCompressorInputStream returned 0 at the end of the
    583         stream under certain circumstances.
    584       </action>
    585       <action type="add" date="2016-01-27" due-to="Jason van Zyl">
    586         Allow byte-for-byte replication of Zip entries.
    587         GitHub Pull Request #6.
    588       </action>
    589       <action issue="COMPRESS-328" type="add" date="2016-01-15">
    590         TarArchiveEntry's preserveLeadingSlashes is now a property and used
    591         on later calls to setName, too.
    592         This behavior is a breaking change.
    593       </action>
    594       <action issue="COMPRESS-326" type="fix" date="2015-10-24">
    595         Adjusted unit test to updates in Java8 and later that change
    596         the logic of ZipEntry#getTime.
    597       </action>
    598       <action issue="COMPRESS-324" type="fix" date="2015-10-06">
    599         TarArchiveOutputStream will now recognize GNU long name and
    600         link entries even if the special entry has a different name
    601         than GNU tar uses itself.  This seems to be the case for
    602         archives created by star.
    603       </action>
    604       <action issue="COMPRESS-321" type="fix" date="2015-08-22">
    605         ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
    606         fields are read from the central directory.
    607       </action>
    608       <action type="add" date="2015-11-11" due-to="Sren Glimm">
    609         Added read-only support for bzip2 compression used inside of
    610         ZIP archives.
    611         GitHub Pull Request #4.
    612       </action>
    613     </release>
    614 
    615     <release version="1.10" date="2015-08-18"
    616              description="Release 1.10
    617 ------------
    618 
    619 
    620 
    621 Release 1.10 moves the former
    622 org.apache.commons.compress.compressors.z._internal_ package which
    623 breaks backwards compatibility for code which used the old package.
    624 This also changes the superclass of ZCompressorInputStream.
    625 ">
    626 
    627       <action issue="COMPRESS-317" type="fix" date="2015-06-09"
    628               due-to="Lucas Werkmeister">
    629         ArrayIndexOutOfBoundsException when ZIP extra fields are read
    630         and the entry contains an UnparseableExtraField.
    631       </action>
    632       <action issue="COMPRESS-316" type="add" date="2015-05-23"
    633               due-to="Nick Burch">
    634         CompressorStreamFactory can now auto-detect DEFLATE streams
    635         with ZLIB header.
    636       </action>
    637       <action issue="COMPRESS-314" type="fix" date="2015-05-08">
    638         TarArchiveInputStream can now read entries with group or
    639         user ids &gt; 0x80000000.
    640       </action>
    641       <action issue="COMPRESS-315" type="fix" date="2015-05-06">
    642         TarArchiveOutputStream can now write entries with group or
    643         user ids &gt; 0x80000000.
    644       </action>
    645       <action issue="COMPRESS-313" type="add" date="2015-03-30">
    646         CompressorStreamFactory can now auto-detect LZMA streams.
    647       </action>
    648       <action issue="COMPRESS-312" type="fix" date="2015-03-28">
    649         TarArchiveEntry's constructor with a File and a String arg
    650         didn't normalize the name.
    651       </action>
    652       <action issue="COMPRESS-308" type="fix" date="2015-02-20">
    653         ZipEncodingHelper no longer reads system properties directly
    654         to determine the default charset.
    655       </action>
    656       <action issue="COMPRESS-309" type="fix" date="2015-02-20">
    657         BZip2CompressorInputStream#read would return -1 when asked to
    658         read 0 bytes.
    659       </action>
    660       <action issue="COMPRESS-306" type="fix" date="2015-02-17">
    661         ArchiveStreamFactory fails to pass on the encoding when creating some streams.
    662         * ArjArchiveInputStream
    663         * CpioArchiveInputStream
    664         * DumpArchiveInputStream
    665         * JarArchiveInputStream
    666         * TarArchiveInputStream
    667         * JarArchiveOutputStream
    668       </action>
    669       <action issue="COMPRESS-302" type="fix" date="2015-02-16">
    670         Restore immutability/thread-safety to ArchiveStreamFactory.
    671         The class is now immutable provided that the method setEntryEncoding is not used.
    672         The class is thread-safe.
    673       </action>
    674       <action issue="COMPRESS-303" type="fix" date="2015-02-16">
    675         Restore immutability/thread-safety to CompressorStreamFactory.
    676         The class is now immutable provided that the method setDecompressConcatenated is not used.
    677         The class is thread-safe.
    678       </action>
    679       <action issue="COMPRESS-298" type="fix" date="2015-01-20">
    680         SevenZFile now throws the specific PasswordRequiredException
    681         when it encounters an encrypted stream but no password has
    682         been specified.
    683       </action>
    684       <action issue="COMPRESS-290" type="fix" date="2015-01-13"
    685               due-to="Kristian Rosenvold">
    686         Improved error message when tar encounters a groupId that is
    687         too big to write without using the STAR or POSIX format.
    688       </action>
    689       <action issue="COMPRESS-296" type="add" date="2015-01-10"
    690               due-to="Kristian Rosenvold">
    691         Added support for parallel compression. This low-level API allows
    692         a client to build a zip/jar file by using the class
    693         org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.
    694 
    695         Zip documentation updated with further notes about parallel features.
    696 
    697         Please note that some aspects of jar creation need to be
    698         handled by client code and is not part of commons-compress for this
    699         release.
    700       </action>
    701       <action type="add" date="2014-12-24"
    702               due-to="Kristian Rosenvold">
    703         Cut overall object instantiation in half by changing file
    704         header generation algorithm, for a 10-15 percent performance
    705         improvement.
    706 
    707         Also extracted two private methods createLocalFileHeader
    708         and createCentralFileHeader in ZipArchiveOutputStream.
    709         These may have some interesting additional usages in the
    710         near future.
    711       </action>
    712       <action issue="COMPRESS-297" type="fix" date="2014-12-22">
    713         ZipFile logs a warning in its finalizer when its constructor
    714         has thrown an exception reading the file - for example if the
    715         file doesn't exist.
    716       </action>
    717       <action issue="COMPRESS-295" type="add" date="2014-12-18"
    718               due-to="Kristian Rosenvold">
    719         New methods in ZipArchiveOutputStream and ZipFile allows
    720         entries to be copied from one archive to another without
    721         having to re-compress them.
    722       </action>
    723       <action type="update" date="2014-10-28"
    724               due-to="Damjan Jovanovic">
    725         Moved the package
    726         org.apache.commons.compress.compressors.z._internal_ to
    727         org.apache.commons.compress.compressors.lzw and made it part
    728         of the API that is officially supported.  This will break
    729         existing code that uses the old package.
    730       </action>
    731     </release>
    732 
    733     <release version="1.9" date="2014-10-09"
    734              description="Release 1.9">
    735       <action type="add" date="2014-06-14" issue="COMPRESS-263"
    736               due-to="Matthias Stevens">
    737         Added support for DEFLATE streams without any gzip framing.
    738       </action>
    739       <action type="fix" date="2014-08-14" issue="COMPRESS-287">
    740         When reading 7z files unknown file properties and properties
    741         of type kDummy are now ignored.
    742       </action>
    743       <action type="fix" date="2014-08-21" issue="COMPRESS-286">
    744         Expanding 7z archives using LZMA compression could cause an
    745         EOFException.
    746       </action>
    747       <action type="update" date="2014-08-31" issue="COMPRESS-285">
    748         Checking for XZ for Java may be expensive.  The result will
    749         now be cached outside of an OSGi environment.  You can use the
    750         new XZUtils#setCacheXZAvailability to overrride this default
    751         behavior.
    752       </action>
    753       <action type="fix" date="2014-09-19" issue="COMPRESS-289"
    754               due-to="Bob Robertson">
    755         Long-Name and -link or PAX-header entries in TAR archives
    756         always had the current time as last modfication time, creating
    757         archives that are different at the byte level each time an
    758         archive was built.
    759       </action>
    760     </release>
    761 
    762     <release version="1.8.1" date="2014-05-14"
    763              description="Release 1.8.1">
    764       <action type="update" date="2014-03-19">
    765         The dependency on org.tukaani:xz is now marked as optional.
    766       </action>
    767       <action type="fix" date="2014-03-28" issue="COMPRESS-270">
    768         The snappy, ar and tar inputstreams might fail to read from a
    769         non-buffered stream in certain cases.
    770       </action>
    771       <action type="add" date="2014-04-12" issue="COMPRESS-272">
    772         CompressorStreamFactory can now auto-detect Unix compress
    773         (".Z") streams.
    774       </action>
    775       <action type="fix" date="2014-04-12" issue="COMPRESS-277">
    776         IOUtils#skip might skip fewer bytes than requested even though
    777         more could be read from the stream.
    778       </action>
    779       <action type="fix" date="2014-04-13" issue="COMPRESS-276">
    780         ArchiveStreams now validate there is a current entry before
    781         reading or writing entry data.
    782       </action>
    783       <action type="fix" date="2014-04-13">
    784         ArjArchiveInputStream#canReadEntryData tested the current
    785         entry of the stream rather than its argument.
    786       </action>
    787       <action type="fix" date="2014-04-13" issue="COMPRESS-274">
    788         ChangeSet#delete and deleteDir now properly deal with unnamed
    789         entries.
    790       </action>
    791       <action type="fix" date="2014-04-18" issue="COMPRESS-273">
    792         Added a few null checks to improve robustness.
    793       </action>
    794       <action type="fix" date="2014-04-19" issue="COMPRESS-278">
    795         TarArchiveInputStream failed to read archives with empty
    796         gid/uid fields.
    797       </action>
    798       <action type="fix" date="2014-04-27" issue="COMPRESS-279">
    799         TarArchiveInputStream now again throws an exception when it
    800         encounters a truncated archive while reading from the last
    801         entry.
    802       </action>
    803       <action type="fix" date="2014-05-02" issue="COMPRESS-280"
    804               due-to="BELUGA BEHR">
    805         Adapted TarArchiveInputStream#skip to the modified
    806         IOUtils#skip method.
    807       </action>
    808     </release>
    809     <release version="1.8" date="2014-03-12"
    810              description="Release 1.8">
    811       <action issue="COMPRESS-253" type="fix" date="2014-01-20">
    812         BZip2CompressorInputStream read fewer bytes than possible from
    813         a truncated stream.
    814       </action>
    815       <action issue="COMPRESS-253" type="fix" date="2014-01-22">
    816         SevenZFile failed claiming the dictionary was too large when
    817         archives used LZMA compression for headers and content and
    818         certain non-default dictionary sizes.
    819       </action>
    820       <action issue="COMPRESS-259" type="fix" date="2014-01-24">
    821         CompressorStreamFactory.createCompressorInputStream with
    822         explicit compression did not honor decompressConcatenated
    823       </action>
    824       <action issue="COMPRESS-260" type="add" date="2014-02-20">
    825         GzipCompressorInputStream now provides access to the same
    826         metadata that can be provided via GzipParameters when writing
    827         a gzip stream.
    828       </action>
    829       <action issue="COMPRESS-262" type="fix" date="2014-02-21">
    830         TarArchiveInputStream will now read archives created by tar
    831         implementations that encode big numbers by not adding a
    832         trailing NUL.
    833       </action>
    834       <action issue="COMPRESS-264" type="fix" date="2014-02-21">
    835         ZipArchiveInputStream would return NUL bytes for the first 512
    836         bytes of a STORED entry if it was the very first entry of the
    837         archive.
    838       </action>
    839       <action issue="COMPRESS-265" type="fix" date="2014-02-22">
    840         When writing PAX/POSIX headers for TAR entries with
    841         backslashes or certain non-ASCII characters in their name
    842         TarArchiveOutputStream could fail.
    843       </action>
    844       <action issue="COMPRESS-267" type="fix" date="2014-02-22">
    845         ArchiveStreamFactory now throws a StreamingNotSupported - a
    846         new subclass of ArchiveException - if it is asked to read from
    847         or write to a stream and Commons Compress doesn't support
    848         streaming for the format.  This currently only applies to the
    849         7z format.
    850       </action>
    851       <action issue="COMPRESS-266" type="add" date="2014-02-25">
    852         SevenZOutputFile now supports chaining multiple
    853         compression/encryption/filter methods and passing options to
    854         the methods.
    855       </action>
    856       <action issue="COMPRESS-261" type="add" date="2014-02-26">
    857         The (compression) method(s) can now be specified per entry in
    858         SevenZOutputFile.
    859       </action>
    860       <action issue="COMPRESS-258" type="add" date="2014-02-26">
    861         SevenZArchiveEntry "knows" which method(s) have been used to
    862         write it to the archive.
    863       </action>
    864       <action type="add" date="2014-02-28">
    865         The 7z package now supports the delta filter as method.
    866       </action>
    867       <action issue="COMPRESS-257" type="add" date="2014-03-03">
    868         The 7z package now supports BCJ filters for several platforms.
    869         You will need a version &gt;= 1.5 of XZ for Java to read archives
    870         using BCJ, though.
    871       </action>
    872     </release>
    873     <release version="1.7" date="2014-01-20"
    874              description="Release 1.7">
    875       <action issue="COMPRESS-241" type="fix" date="2013-10-27">
    876         SevenZOutputFile#closeArchiveEntry throws an exception when
    877         using LZMA2 compression on Java8.
    878       </action>
    879       <action issue="COMPRESS-147" type="add" date="2013-11-07"
    880               due-to="BELUGA BEHR">
    881         Read-Only support for Snappy compression.
    882       </action>
    883       <action issue="COMPRESS-244" type="fix" date="2013-11-27"
    884               due-to="Nico Kruber">
    885         7z reading of big 64bit values could be wrong.
    886       </action>
    887       <action issue="COMPRESS-243" type="add" date="2013-11-30"
    888               due-to="Damjan Jovanovic">
    889         Read-Only support for .Z compressed files.
    890       </action>
    891       <action type="add" date="2013-12-06" due-to="Damjan Jovanovic">
    892         ZipFile and ZipArchiveInputStream now support reading entries compressed using the
    893         SHRINKING method.
    894       </action>
    895       <action issue="COMPRESS-245" type="fix" date="2013-12-06">
    896         TarArchiveInputStream could fail to read an archive completely.
    897       </action>
    898       <action issue="COMPRESS-242" type="fix" date="2013-12-08">
    899         The time-setters in X5455_ExtendedTimestamp now set the
    900         corresponding flags explicitly - i.e. they set the bit if the
    901         valus is not-null and reset it otherwise.  This may cause
    902         incompatibilities if you use setFlags to unset a bit and later
    903         set the time to a non-null value - the flag will now be set.
    904       </action>
    905       <action issue="COMPRESS-250" type="add" date="2013-12-16" due-to="Emmanuel Bourg">
    906         GzipCompressorOutputStream now supports setting the compression level and the header metadata
    907         (filename, comment, modification time, operating system and extra flags)
    908       </action>
    909       <action issue="COMPRESS-115" type="add" date="2013-12-19" due-to="Emmanuel Bourg">
    910         ZipFile and ZipArchiveInputStream now support reading entries compressed using the IMPLODE method.
    911       </action>
    912       <action issue="COMPRESS-252" type="fix" date="2013-12-20">
    913         SevenZOutputFile would create invalid archives if more than
    914         six empty files or directories were included.
    915       </action>
    916       <action type="add" date="2013-12-20">
    917         ZipFile and the 7z file classes now implement Closeable and
    918         can be used in try-with-resources constructs.
    919       </action>
    920     </release>
    921     <release version="1.6" date="2013-10-26"
    922              description="Release 1.6">
    923       <action type="fix" date="2013-04-25" issue="COMPRESS-223"
    924               due-to="Jeremy Gustie">
    925         TarBuffer.tryToConsumeSecondEOFRecord could throw a
    926         NullPointerException
    927       </action>
    928       <action type="add" date="2013-05-07" issue="COMPRESS-54"
    929               due-to="Damjan Jovanovic">
    930         Added support for 7z archives.  Most compression algorithms
    931         can be read and written, LZMA and encryption are only
    932         supported when reading.
    933       </action>
    934       <action type="add" date="2013-05-19" issue="COMPRESS-226"
    935               due-to="Damjan Jovanovic">
    936         Added read-only support for ARJ archives that don't use
    937         compression.
    938       </action>
    939       <action type="fix" date="2013-05-26" issue="COMPRESS-228">
    940         Parsing of zip64 extra fields has become more lenient in order
    941         to be able to read archives created by DotNetZip and maybe
    942         other archivers as well.
    943       </action>
    944       <action type="fix" date="2013-06-03" issue="COMPRESS-229"
    945               due-to="Christoph Gysin">
    946         TAR will now properly read the names of symbolic links with
    947         long names that use the GNU variant to specify the long file
    948         name.
    949       </action>
    950       <action type="fix" date="2013-06-04" issue="COMPRESS-227">
    951         ZipFile#getInputStream could return null if the archive
    952         contained duplicate entries.
    953         The class now also provides two new methods to obtain all
    954         entries of a given name rather than just the first one.
    955       </action>
    956       <action type="update" date="2013-07-08" issue="COMPRESS-232"
    957               due-to="BELUGA BEHR">
    958         Readabilty patch to TarArchiveInputStream.
    959       </action>
    960       <action type="update" date="2013-08-08" issue="COMPRESS-234"
    961               due-to="BELUGA BEHR">
    962         Performance improvements to TarArchiveInputStream, in
    963         particular to the skip method.
    964       </action>
    965       <action type="fix" date="2013-08-08" issue="COMPRESS-236"
    966               due-to="Andrew Duffy">
    967         CpioArchiveInputStream failed to read archives created by
    968         Redline RPM.
    969       </action>
    970       <action type="fix" date="2013-08-09" issue="COMPRESS-237"
    971               due-to="Emmanuel Bourg">
    972         TarArchiveOutputStream now properly handles link names that
    973         are too long to fit into a traditional TAR header.
    974       </action>
    975       <action type="add" date="2013-08-10">
    976         DumpArchiveInputStream now supports an encoding parameter that
    977         can be used to specify the encoding of file names.
    978       </action>
    979       <action type="add" date="2013-08-10">
    980         The CPIO streams now support an encoding parameter that can be
    981         used to specify the encoding of file names.
    982       </action>
    983       <action type="add" date="2013-09-22" issue="COMPRESS-111">
    984         Read-only support for LZMA standalone compression has been added.
    985       </action>
    986       <action type="fix" date="2013-10-04" issue="COMPRESS-239">
    987         The auto-detecting create*InputStream methods of Archive and
    988         CompressorStreamFactory could fail to detect the format of
    989         blocking input streams.
    990       </action>
    991       <action type="fix" date="2013-10-21" issue="COMPRESS-240"
    992               due-to="Gary Gregory">
    993         ZipEncodingHelper.isUTF8(String) does not check all UTF-8 aliases.
    994       </action>
    995     </release>
    996     <release version="1.5" date="2013-03-14"
    997              description="Release 1.5">
    998       <action type="fix" date="2012-02-19" issue="COMPRESS-218"
    999               due-to="Gili">
   1000         Typo in CompressorStreamFactory Javadoc
   1001       </action>
   1002       <action type="update" date="2012-07-08" issue="COMPRESS-188"
   1003               due-to="Harald Kuhn">
   1004         Improved exception message if a zip archive cannot be read
   1005         because of an unsupported compression method.
   1006       </action>
   1007       <action type="update" date="2012-07-07" issue="COMPRESS-192"
   1008               due-to="Jukka Zitting">
   1009         ArchiveStreamFactory has a setting for file name encoding that
   1010         sets up encoding for ZIP and TAR streams.
   1011       </action>
   1012       <action type="fix" date="2012-07-07" issue="COMPRESS-191"
   1013               due-to="Jukka Zitting">
   1014         ArchiveStreamFactory's tar stream detection created false
   1015         positives for AIFF files.
   1016       </action>
   1017       <action type="update" date="2012-07-07" issue="COMPRESS-191"
   1018               due-to="Jukka Zitting">
   1019         TarArchiveEntry now has a method to verify its checksum.
   1020       </action>
   1021       <action type="fix" date="2012-12-27" issue="COMPRESS-199"
   1022               due-to="Jukka Zitting">
   1023         XZ for Java didn't provide an OSGi bundle.  Compress'
   1024         dependency on it has now been marked optional so Compress
   1025         itself can still be used in an OSGi context.
   1026       </action>
   1027       <action type="fix" date="2012-12-27" issue="COMPRESS-200"
   1028               due-to="Christian Schlichtherle">
   1029         When specifying the encoding explicitly TarArchiveOutputStream
   1030         would write unreadable names in GNU mode or even cause errors
   1031         in POSIX mode for file names longer than 66 characters.
   1032       </action>
   1033       <action type="fix" date="2012-12-27" issue="COMPRESS-203">
   1034         Writing TAR PAX headers failed if the generated entry name
   1035         ended with a "/".
   1036       </action>
   1037       <action type="fix" date="2012-12-28" issue="COMPRESS-189"
   1038               due-to="Daniel Lowe">
   1039         ZipArchiveInputStream sometimes failed to provide input to the
   1040         Inflater when it needed it, leading to reads returning 0.
   1041       </action>
   1042       <action type="update" date="2013-01-01">
   1043         Split/spanned ZIP archives are now properly detected by
   1044         ArchiveStreamFactory but will cause an
   1045         UnsupportedZipFeatureException when read.
   1046       </action>
   1047       <action type="update" date="2013-01-01" issue="COMPRESS-208">
   1048         ZipArchiveInputStream now reads archives that start with a
   1049         "PK00" signature.  Archives with this signatures are created
   1050         when the archiver was willing to split the archive but in the
   1051         end only needed a single segment - so didn't split anything.
   1052       </action>
   1053       <action type="update" date="2013-01-01" issue="COMPRESS-201">
   1054         TarArchiveEntry has a new constructor that allows setting
   1055         linkFlag and preserveLeadingSlashes at the same time.
   1056       </action>
   1057       <action type="update" date="2013-01-01" issue="COMPRESS-159">
   1058         ChangeSetPerformer has a new perform overload that uses a
   1059         ZipFile instance as input.
   1060       </action>
   1061       <action type="fix" date="2013-01-04" issue="COMPRESS-212">
   1062         TarArchiveInputStream ignored the encoding for GNU long name
   1063         entries.
   1064       </action>
   1065       <action type="update" date="2013-01-05" issue="COMPRESS-172"
   1066               due-to="Thomas Mair">
   1067         Garbage collection pressure has been reduced by reusing
   1068         temporary byte arrays in classes.
   1069       </action>
   1070         <action type="update" date="2013-01-08" issue="COMPRESS-210"
   1071                 due-to="Julius Davies">
   1072           Can now handle zip extra field 0x5455 - Extended Timestamp.
   1073         </action>
   1074         <action type="update" date="2013-01-07" issue="COMPRESS-211"
   1075                 due-to="Julius Davies">
   1076           handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
   1077         </action>
   1078         <action type="update" date="2013-01-07" issue="COMPRESS-213"
   1079                 due-to="Julius Davies">
   1080             ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
   1081         </action>
   1082         <action type="update" date="2013-01-14" issue="COMPRESS-214"
   1083                 due-to="Julius Davies">
   1084             better support for unix symlinks in ZipFile entries
   1085         </action>
   1086         <action type="update" date="2013-01-19" issue="COMPRESS-215"
   1087                 due-to="Robin Power">
   1088           ZipFile's initialization has been improved for non-Zip64
   1089           archives.
   1090         </action>
   1091         <action type="fix" date="2013-01-20" issue="COMPRESS-206"
   1092                 due-to="Peter De Maeyer">
   1093           TarArchiveInputStream could leave the second EOF record
   1094           inside the stream it had just finished reading.
   1095         </action>
   1096         <action type="fix" date="2013-01-20">
   1097           DumpArchiveInputStream no longer implicitly closes the
   1098           original input stream when it reaches the end of the
   1099           archive.
   1100         </action>
   1101         <action type="fix" date="2013-01-22">
   1102           ZipArchiveInputStream now consumes the remainder of the
   1103           archive when getNextZipEntry returns null.
   1104         </action>
   1105         <action type="fix" date="2013-01-27" issue="COMPRESS-205"
   1106                 due-to="Daniel Lowe">
   1107           Unit tests could fail if the source tree was checked out to
   1108           a directory tree containign spaces.
   1109         </action>
   1110         <action type="update" date="2013-01-31">
   1111           Updated XZ for Java dependency to 1.2 as this version
   1112           provides proper OSGi manifest attributes.
   1113         </action>
   1114         <action type="fix" date="2013-02-20" issue="COMPRESS-219">
   1115           Fixed a potential ArrayIndexOutOfBoundsException when
   1116           reading STORED entries from ZipArchiveInputStream.
   1117         </action>
   1118         <action type="fix" date="2013-03-07" issue="COMPRESS-221">
   1119           CompressorStreamFactory can now be used without XZ for Java
   1120           being available.
   1121         </action>
   1122         <action type="add" date="2013-03-07" issue="COMPRESS-220">
   1123           CompressorStreamFactory has an option to create
   1124           decompressing streams that decompress the full input for
   1125           formats that support multiple concatenated streams.
   1126         </action>
   1127     </release>
   1128     <release version="1.4.1" date="2012-05-23"
   1129              description="Release 1.4.1">
   1130       <action type="fix" date="2012-05-20">
   1131         Ported libbzip2's fallback sort algorithm to
   1132         BZip2CompressorOutputStream to speed up compression in certain
   1133         edge cases.
   1134         Using specially crafted inputs this can be used as a denial
   1135         of service attack.  See the security reports page for details.
   1136       </action>
   1137     </release>
   1138     <release version="1.4" date="2012-04-11"
   1139              description="Release 1.4">
   1140       <action issue="COMPRESS-183" type="fix" date="2012-03-24">
   1141         The tar package now allows the encoding of file names to be
   1142         specified and can optionally use PAX extension headers to
   1143         write non-ASCII file names.
   1144         The stream classes now write (or expect to read) archives that
   1145         use the platform's native encoding for file names.  Apache
   1146         Commons Compress 1.3 used to strip everything but the lower
   1147         eight bits of each character which effectively only worked for
   1148         ASCII and ISO-8859-1 file names.
   1149         This new default behavior is a breaking change.
   1150       </action>
   1151       <action issue="COMPRESS-184" type="fix" date="2012-03-23">
   1152         TarArchiveInputStream failed to parse PAX headers that
   1153         contained non-ASCII characters.
   1154       </action>
   1155       <action issue="COMPRESS-182" type="update" date="2012-03-02">
   1156         The tar package can now write archives that use star/GNU/BSD
   1157         extensions or use the POSIX/PAX variant to store numeric
   1158         values that don't fit into the traditional header fields.
   1159       </action>
   1160       <action issue="COMPRESS-181" type="update" date="2012-03-02">
   1161         Added a workaround for a Bug some tar implementations that add
   1162         a NUL byte as first byte in numeric header fields.
   1163       </action>
   1164       <action issue="COMPRESS-176" type="update" date="2012-02-28">
   1165         Added a workaround for a Bug in WinZIP which uses backslashes
   1166         as path separators in Unicode Extra Fields.
   1167       </action>
   1168       <action issue="COMPRESS-131" type="update" date="2012-02-23">
   1169         ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed.
   1170       </action>
   1171       <action issue="COMPRESS-178" type="fix" date="2012-02-23">
   1172         TarArchiveInputStream throws IllegalArgumentException instead of IOException
   1173       </action>
   1174       <action issue="COMPRESS-179" type="fix" date="2012-02-23">
   1175         TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long
   1176       </action>
   1177       <action issue="COMPRESS-175" type="fix" date="2012-02-22">
   1178         GNU Tar sometimes uses binary encoding for UID and GID
   1179       </action>
   1180       <action issue="COMPRESS-171" type="fix" date="2012-01-29">
   1181         ArchiveStreamFactory.createArchiveInputStream would claim
   1182         short text files were TAR archives.
   1183       </action>
   1184       <action issue="COMPRESS-156" type="add" date="2011-11-02">
   1185         Support for the XZ format has been added.
   1186       </action>
   1187       <action issue="COMPRESS-146" type="update" date="2011-11-07">
   1188         BZip2CompressorInputStream now optionally supports reading of
   1189         concatenated .bz2 files.
   1190       </action>
   1191       <action issue="COMPRESS-154" type="update" date="2011-11-09">
   1192         GZipCompressorInputStream now optionally supports reading of
   1193         concatenated .gz files.
   1194       </action>
   1195       <action issue="COMPRESS-164" type="fix" date="2011-12-05">
   1196         ZipFile didn't work properly for archives using unicode extra
   1197         fields rather than UTF-8 filenames and the EFS-Flag.
   1198       </action>
   1199       <action issue="COMPRESS-16" type="update" date="2011-12-07">
   1200         The tar package can now read archives that use star/GNU/BSD
   1201         extensions for files that are longer than 8 GByte as well as
   1202         archives that use the POSIX/PAX variant.
   1203       </action>
   1204       <action issue="COMPRESS-165" type="update" date="2011-12-08">
   1205         The tar package can now write archives that use star/GNU/BSD
   1206         extensions for files that are longer than 8 GByte as well as
   1207         archives that use the POSIX/PAX variant.
   1208       </action>
   1209       <action issue="COMPRESS-166" type="update" date="2011-12-08">
   1210         The tar package can now use the POSIX/PAX variant for writing
   1211         entries with names longer than 100 characters.
   1212       </action>
   1213       <action issue="COMPRESS-169" type="fix" date="2011-12-22">
   1214         For corrupt archives ZipFile would throw a RuntimeException in
   1215         some cases and an IOException in others.  It will now
   1216         consistently throw an IOException.
   1217       </action>
   1218     </release>
   1219     <release version="1.3" date="2011-11-01"
   1220              description="Release 1.3 - API compatible to 1.2 but requires Java5 at runtime">
   1221       <action issue="COMPRESS-142" type="add" date="2011-09-14">
   1222         Support for the Pack200 format has been added.
   1223       </action>
   1224       <action issue="COMPRESS-132" type="add" date="2011-08-17">
   1225         Read-only support for the format used by the Unix dump(8) tool
   1226         has been added.
   1227       </action>
   1228       <action issue="COMPRESS-36" type="update" date="2011-08-15">
   1229         The ZIP package now supports Zip64 extensions.
   1230       </action>
   1231       <action issue="COMPRESS-144" type="update" date="2011-08-08">
   1232         The AR package now supports the BSD dialect of storing file
   1233         names longer than 16 chars (both reading and writing).
   1234       </action>
   1235       <action type="fix" date="2011-08-08">
   1236         BZip2CompressorInputStream's getBytesRead method always
   1237         returned 0.
   1238       </action>
   1239       <action issue="COMPRESS-152" type="fix" date="2011-08-03">
   1240         ZipArchiveInputStream and ZipArchiveOutputStream could leak
   1241         resources on some JDKs.
   1242       </action>
   1243       <action issue="COMPRESS-160" type="fix" date="2011-10-23">
   1244         TarArchiveOutputStream's getBytesWritten method didn't count
   1245         correctly.
   1246       </action>
   1247     </release>
   1248     <release version="1.2" date="2011-07-31"
   1249              description="Release 1.2 - a bugfix release, the last release expected to be compatible with Java 1.4">
   1250       <action issue="COMPRESS-129" type="fix" date="2011-07-26">
   1251         ZipArchiveInputStream could fail with a "Truncated ZIP" error
   1252         message for entries between 2 GByte and 4 GByte in size.
   1253       </action>
   1254       <action issue="COMPRESS-145" type="fix" date="2011-07-23"
   1255               due-tue="Patrick Dreyer">
   1256         TarArchiveInputStream now detects sparse entries using the
   1257         oldgnu format and properly reports it cannot extract their
   1258         contents.
   1259       </action>
   1260       <action issue="COMPRESS-123" type="add" date="2011-07-23">
   1261         ZipArchiveEntry has a new method getRawName that provides the
   1262         original bytes that made up the name.  This may allow user
   1263         code to detect the encoding.
   1264       </action>
   1265       <action issue="COMPRESS-130" type="fix" date="2011-07-20">
   1266         The Javadoc for ZipArchiveInputStream#skip now matches the
   1267         implementation, the code has been made more defensive.
   1268       </action>
   1269       <action issue="COMPRESS-140" type="fix" date="2011-07-20"
   1270               due-to="Trejkaz">
   1271         ArArchiveInputStream fails if entries contain only blanks for
   1272         userId or groupId.
   1273       </action>
   1274       <action issue="COMPRESS-139" type="fix" date="2011-07-13">
   1275         ZipFile may leak resources on some JDKs.
   1276       </action>
   1277       <action type="update" date="2011-04-18">
   1278         ZipFile now implements finalize which closes the underlying
   1279         file.
   1280       </action>
   1281       <action issue="COMPRESS-117" type="update" date="2011-03-23">
   1282         Certain tar files not recognised by ArchiveStreamFactory.
   1283       </action>
   1284       <action issue="COMPRESS-125" type="fix" date="2011-03-23">
   1285         BZip2CompressorInputStream throws IOException if underlying stream returns available() == 0.
   1286         Removed the check.
   1287       </action>
   1288       <action issue="COMPRESS-127" type="fix" date="2011-03-23">
   1289         Calling close() on inputStream returned by CompressorStreamFactory.createCompressorInputStream()
   1290         does not close the underlying input stream.
   1291       </action>
   1292       <action issue="COMPRESS-122" type="add" date="2010-10-29">
   1293         TarArchiveEntry provides access to the flags that determine
   1294         whether it is an archived symbolic link, pipe or other
   1295         "uncommon" file system object.
   1296       </action>
   1297       <action issue="COMPRESS-119" type="fix" date="2010-10-26">
   1298         TarArchiveOutputStream#finish now writes all buffered data to the stream
   1299       </action>
   1300     </release>
   1301     <release version="1.1" date="2010-08-13" description="Release 1.1">
   1302       <action issue="COMPRESS-72" type="fix" date="2010-06-02">
   1303        Move acknowledgements from NOTICE to README
   1304       </action>
   1305       <action issue="COMPRESS-113" type="fix" date="2010-06-02">
   1306        TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size
   1307       </action>
   1308       <action issue="COMPRESS-108" type="add" date="2010-05-23">
   1309        Command-line interface to list archive contents.
   1310        Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc]
   1311       </action>
   1312       <action issue="COMPRESS-118" type="fix" date="2010-05-17">
   1313        TarUtils.parseName does not properly handle characters outside the range 0-127
   1314       </action>
   1315       <action issue="COMPRESS-112" type="update" date="2010-05-13">
   1316        ArArchiveInputStream does not handle GNU extended filename records (//)
   1317       </action>
   1318       <action issue="COMPRESS-109" type="add" date="2010-05-10">
   1319        Tar implementation does not support Pax headers
   1320        Added support for reading pax headers.
   1321        Note: does not support global pax headers
   1322       </action>
   1323       <action issue="COMPRESS-107" type="fix" date="2010-05-10">
   1324        ArchiveStreamFactory does not recognise tar files created by Ant
   1325       </action>
   1326       <action issue="COMPRESS-110" type="fix" date="2010-05-09">
   1327        Support "ustar" prefix field, which is used when file paths are longer
   1328        than 100 characters.
   1329       </action>
   1330       <action type="update" date="2010-04-19" issue="COMPRESS-105">
   1331        Document that the name of an ZipArchiveEntry determines whether
   1332        an entry is considered a directory or not.
   1333        If you don't use the constructor with the File argument the entry's
   1334         name must end in a "/" in order for the entry to be known as a directory.
   1335       </action>
   1336       <action type="add" date="2010-03-19" issue="COMPRESS-103">
   1337         ZipArchiveInputStream can optionally extract data that used
   1338         the STORED compression method and a data descriptor.
   1339         Doing so in a stream is not safe in general, so you have to
   1340         explicitly enable the feature.  By default the stream will
   1341         throw an exception if it encounters such an entry.
   1342       </action>
   1343       <action type="fix" date="2010-03-12" issue="COMPRESS-100">
   1344         ZipArchiveInputStream will throw an exception if it detects an
   1345         entry that uses a data descriptor for a STORED entry since it
   1346         cannot reliably find the end of data for this "compression"
   1347         method.
   1348       </action>
   1349       <action type="fix" date="2010-03-12" issue="COMPRESS-101">
   1350         ZipArchiveInputStream should now properly read archives that
   1351         use data descriptors but without the "unofficial" signature.
   1352       </action>
   1353       <action type="add" date="2010-03-09" issue="COMPRESS-98">
   1354         The ZIP classes will throw specialized exceptions if any
   1355         attempt is made to read or write data that uses zip features
   1356         not supported (yet).
   1357       </action>
   1358       <action type="add" date="2010-03-08" issue="COMPRESS-99">
   1359         ZipFile#getEntries returns entries in a predictable order -
   1360         the order they appear inside the central directory.
   1361         A new method getEntriesInPhysicalOrder returns entries in
   1362         order of the entry data, i.e. the order ZipArchiveInputStream
   1363         would see.
   1364       </action>
   1365       <action type="add" date="2010-02-19">
   1366         The Archive*Stream and ZipFile classes now have
   1367         can(Read|Write)EntryData methods that can be used to check
   1368         whether a given entry's data can be read/written.
   1369         The method currently returns false for ZIP archives if an
   1370         entry uses an unsupported compression method or encryption.
   1371       </action>
   1372       <action type="add" date="2010-02-19" issue="COMPRESS-89">
   1373         The ZIP classes now detect encrypted entries.
   1374       </action>
   1375       <action type="update" date="2010-02-18" issue="COMPRESS-79">
   1376         Move DOS/Java time conversions into Zip utility class.
   1377       </action>
   1378       <action type="fix" date="2010-02-18" issue="COMPRESS-74">
   1379         ZipArchiveInputStream failed to update the number of bytes
   1380         read properly.
   1381       </action>
   1382       <action type="fix" date="2010-02-18">
   1383         ArchiveInputStream has a new method getBytesRead that should
   1384         be preferred over getCount since the later may truncate the
   1385         number of bytes read for big archives.
   1386       </action>
   1387       <action type="fix" date="2010-02-18" issue="COMPRESS-85">
   1388         The cpio archives created by CpioArchiveOutputStream couldn't
   1389         be read by many existing native implementations because the
   1390         archives contained multiple entries with the same inode/device
   1391         combinations and weren't padded to a blocksize of 512 bytes.
   1392       </action>
   1393       <action type="fix" date="2010-02-16" issue="COMPRESS-73">
   1394         ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
   1395         more lenient when parsing extra fields.
   1396       </action>
   1397       <action issue="COMPRESS-75" type="update" date="2010-02-12">
   1398        ZipArchiveInputStream does not show location in file where a problem occurred.
   1399       </action>
   1400       <action type="fix" date="2010-02-12" issue="COMPRESS-82">
   1401         cpio is terribly slow.
   1402         Documented that buffered streams are needed for performance
   1403       </action>
   1404       <action type="add" date="2010-02-12" issue="COMPRESS-97">
   1405         Added autodetection of compression format to
   1406         CompressorStreamFactory.
   1407       </action>
   1408       <action type="fix" date="2010-02-12">
   1409         Improved exception message if the extra field data in ZIP
   1410         archives cannot be parsed.
   1411       </action>
   1412       <action type="fix" date="2010-02-11" issue="COMPRESS-17">
   1413         Tar format unspecified - current support documented.
   1414       </action>
   1415       <action type="add" issue="COMPRESS-95" date="2010-01-29"
   1416               due-to="Joerg Bellmann">
   1417         Improve ExceptionMessages in ArchiveStreamFactory
   1418       </action>
   1419       <action type="fix" issue="COMPRESS-94" date="2010-01-07"
   1420               due-to="Anon Devs">
   1421         ZipArchiveEntry's equals method was broken for entries created
   1422         with the String-arg constructor.  This lead to broken ZIP
   1423         archives if two different entries had the same hash code.
   1424       </action>
   1425       <action type="fix" issue="COMPRESS-87" date="2009-10-30"
   1426               due-to="Antoni Mylka">
   1427         ZipArchiveInputStream could repeatedly return 0 on read() when
   1428         the archive was truncated.
   1429       </action>
   1430       <action type="fix" issue="COMPRESS-86" date="2009-10-08">
   1431         Tar archive entries holding the file name for names longer
   1432         than 100 characters in GNU longfile mode didn't properly
   1433         specify they'd be using the "oldgnu" extension.
   1434       </action>
   1435       <action type="add" date="2009-08-25">
   1436         A new constructor of TarArchiveEntry can create entries with
   1437         names that start with slashes - the default is to strip
   1438         leading slashes in order to create relative path names.
   1439       </action>
   1440       <action issue="COMPRESS-83" type="fix" date="2009-08-01">
   1441         Delegate all read and write methods in GZip stream in order to
   1442         speed up operations.
   1443       </action>
   1444       <action type="add" date="2009-08-01">
   1445         ArchiveEntry now has a getLastModifiedDate method.
   1446       </action>
   1447       <action type="fix" date="2009-08-01">
   1448         The ar and cpio streams now properly read and write last
   1449         modified times.
   1450       </action>
   1451       <action issue="COMPRESS-81" type="fix" date="2009-06-30">
   1452         TarOutputStream can leave garbage at the end of the archive
   1453       </action>
   1454       <action issue="COMPRESS-78" type="add" date="2009-06-30"
   1455               due-to="Jukka Zitting">
   1456         Add a BZip2Utils class modelled after GZipUtils
   1457       </action>
   1458     </release>
   1459     <release version="1.0" date="2009-05-21" description="First Public Release">
   1460       <action dev="all" type="add" date="2009-05-21">
   1461         Initial release
   1462       </action>
   1463       <action dev="sgoeschl" type="fix">
   1464         Updating the pom.xml for preparing a move to commons-proper
   1465       </action>
   1466     </release>
   1467   </body>
   1468 </document>
   1469