blob: 21c9c4c8bd8c8214a726b96afa9e352b7a641524 [file] [log] [blame]
Stefan Bodewigbdd4bd62015-01-30 08:14:03 +00001 Apache Commons Compress RELEASE NOTES
Sebastian Bazley48882f12010-04-13 21:02:37 +00002
Stefan Bodewig4a154172013-10-13 04:06:16 +00003Apache Commons Compress software defines an API for working with
4compression and archive formats. These include: bzip2, gzip, pack200,
Stefan Bodewigde633062014-10-09 12:00:48 +00005lzma, xz, Snappy, traditional Unix Compress, DEFLATE and ar, cpio,
6jar, tar, zip, dump, 7z, arj.
7
Stefan Bodewigb9acd7c2016-12-25 13:02:22 +01008Release 1.13
9------------
10
Stefan Bodewig45438472016-12-25 13:16:42 +010011Commons Compress 1.13 is the first version to require Java 7 at
Stefan Bodewigb9acd7c2016-12-25 13:02:22 +010012runtime.
13
14Changes in this version include:
15
16New features:
17o SevenZFile, SevenZOutputFile, ZipFile and
18 ZipArchiveOutputStream can now work on non-file resources if
19 they can be accessed via SeekableByteChannel.
20 Issue: COMPRESS-327.
21o Allow compressor extensions through a standard JRE ServiceLoader.
22 Issue: COMPRESS-368.
23o Allow archive extensions through a standard JRE ServiceLoader.
24 Issue: COMPRESS-369.
25o Add write support for the legacy LZMA format, this requires XZ
26 for Java 1.6.
27 Issue: COMPRESS-373.
28o Add write support for the legacy LZMA stream to 7z, this
29 requires XZ for Java 1.6.
30 Issue: COMPRESS-374.
31o Allow the clients of ParallelScatterZipCreator to provide
32 ZipArchiveEntryRequestSupplier.
33 Issue: COMPRESS-375. Thanks to Plamen Totev.
34o Add a version-independent link to the API docs of the latest
35 release.
36 Issue: COMPRESS-372.
37
38Fixed Bugs:
39o BitInputStream could return bad results when overflowing
40 internally - if two consecutive reads tried to read more than
41 64 bits.
42 Issue: COMPRESS-363.
43o ZipArchiveInputStream.closeEntry does not properly advance to
44 next entry if there are junk bytes at end of data section.
45 Issue: COMPRESS-364. Thanks to Mike Mole.
46o ZipArchiveInputStream now throws an Exception if it encounters
47 a broken ZIP archive rather than signaling end-of-archive.
48 Issue: COMPRESS-367. Thanks to Mike Mole.
49o ScatterZipOutputStream didn't close the StreamCompressor
50 causing a potential resource leak.
51 Issue: COMPRESS-377.
52
53Changes:
54o Update Java requirement from 6 to 7.
55 Issue: COMPRESS-360.
56o Clarified which TarArchiveEntry methods are useless for
57 entries read from an archive.
58 Issue: COMPRESS-366.
59
Stefan Bodewig3623ee72016-06-18 17:25:37 +020060Release 1.12
Stefan Bodewig4c11f122016-06-18 17:17:37 +020061------------
62
Stefan Bodewig9a677fb2016-06-21 21:27:57 +020063Commons Compress 1.12 is the first version to require Java 6 at
Stefan Bodewig4c11f122016-06-18 17:17:37 +020064runtime.
65
66Release 1.12 changes the behavior of BZip2CompressorOutputStream's
67finalize method so that it no longer invokes finish. This is going to
68break code that relied on the finalizer to clean up an unfinished
69stream. The code will need to be changed to call finish or close
70itself. Note that a finalizer is not guaranteed to run, so the feature
71was not 100% effective in any case.
72
73New features:
74
75o FramedSnappyCompressorInputStream now supports the dialect of
76 Snappy used by the IWA files contained within the zip archives
77 used in Apple's iWork 13 files.
78 Issue: COMPRESS-352.
79
80Fixed Bugs:
81
82o SevenZFile.read() throws an IllegalStateException for empty entries.
83 Issue: COMPRESS-348.
84o TarArchiveInputStream failed to parse PAX headers that included
85 blank lines.
86 Issue: COMPRESS-355. Thanks to Jeremy Gustie.
87o TarArchiveInputStream failed to parse PAX headers whose tar entry
88 name ended with a slash.
89 Issue: COMPRESS-356. Thanks to Jeremy Gustie.
90
91Changes:
92o Update requirement from Java 5 to 6.
93 Issue: COMPRESS-349.
94o TarArchiveEntry wastefully allocates empty arrays.
95 Issue: COMPRESS-350.
96o Javadoc for BZip2CompressorInputStream(InputStream, boolean) should
97 refer to IOEx, not NPE.
98 Issue: COMPRESS-353.
99o PureJavaCrc32C in the snappy package is now final so it is now safe
100 to call a virtual method inside the constructor.
101 Issue: COMPRESS-354.
102
103o ZipArchiveInputStream and CpioArchiveInputStream could throw
104 exceptions who's messages contained potentially corrupt entry names
105 read from a broken archive. They will now sanitize the names by
106 replacing unprintable characters and restricting the length to 255
107 characters.
108 Issue: COMPRESS-351.
109o BZip2CompressorOutputStream no longer tries to finish the output
110 stream in finalize. This is a breaking change for code that relied
111 on the finalizer.
112 Issue: COMPRESS-357.
113
114
Stefan Bodewigff38bf52016-03-30 15:12:33 +0200115Release 1.11
Torsten Curdt68db5fa2016-01-15 15:35:17 +0100116------------
117
Stefan Bodewigff38bf52016-03-30 15:12:33 +0200118New features:
119o TarArchiveInputStream now supports reading global PAX headers.
120 Issue: COMPRESS-347.
121o The PAX headers for sparse entries written by star are now
122 applied.
123 Issue: COMPRESS-346.
124o GNU sparse files using one of the PAX formats are now
125 detected, but cannot be extracted.
126 Issue: COMPRESS-345.
127o New method SevenZFile.getEntries can be used to list the
128 contents of a 7z archive.
129 Issue: COMPRESS-341.
130o When using Zip64Mode.Always also use ZIP64 extensions inside
131 the central directory.
132 GitHub Pull Request #10 Thanks to Matt Hovey.
133o ZipFile.getRawInputStream() is now part of the public API
134 Issue: COMPRESS-323.
135o Allow byte-for-byte replication of Zip entries.
136 GitHub Pull Request #6. Thanks to Jason van Zyl.
Torsten Curdt68db5fa2016-01-15 15:35:17 +0100137o TarArchiveEntry's preserveLeadingSlashes is now a property and used
138 on later calls to setName, too.
139 This behavior is a breaking change.
Stefan Bodewigff38bf52016-03-30 15:12:33 +0200140 Issue: COMPRESS-328.
141o Added read-only support for bzip2 compression used inside of
142 ZIP archives.
143 GitHub Pull Request #4. Thanks to Sören Glimm.
144
145Fixed Bugs:
146o ArArchiveInputStream can now read GNU extended names that are
147 terminated with a NUL byte rather than a linefeed.
148 Issue: COMPRESS-344.
149o Native Memory Leak in Sevenz-DeflateDecoder.
150 Issue: COMPRESS-343. Thanks to Rene Preissel.
151o SevenZFile will now only try to drain an entry's content when
152 moving on to the next entry if data is read from the next
153 entry. This should improve performance for applications that
154 try to skip over entries.
155 Issue: COMPRESS-340. Thanks to Dawid Weiss.
156o file names of tar archives using the xstar format are now
157 parsed properly.
158 Issue: COMPRESS-336.
159o checksums of tars that pad the checksum field to the left are
160 now calculated properly.
161 Issue: COMPRESS-335.
162o ArArchiveInputStream failed to read past the first entry when
163 BSD long names have been used.
164 Issue: COMPRESS-334. Thanks to Jeremy Gustie.
165o Added buffering for random access which speeds up 7Z support.
166 Issue: COMPRESS-333. Thanks to Dawid Weiss.
167o The checksum validation of TararchiveEntry is now as strict as
168 the validation of GNU tar, which eliminates a few cases of
169 false positives of ArchiveStreamFactory.
170 This behavior is a breaking change since the check has become
171 more strict but any archive that fails the checksum test now
172 would also fail it when extracted with other tools and must be
173 considered an invalid archive.
174 Issue: COMPRESS-331.
175o SnappyCompressorInputStream and
176 FramedSnappyCompressorInputStream returned 0 at the end of the
177 stream under certain circumstances.
178 Issue: COMPRESS-332.
179o Adjusted unit test to updates in Java8 and later that change
180 the logic of ZipEntry#getTime.
181 Issue: COMPRESS-326.
182o TarArchiveOutputStream will now recognize GNU long name and
183 link entries even if the special entry has a different name
184 than GNU tar uses itself. This seems to be the case for
185 archives created by star.
186 Issue: COMPRESS-324.
187o ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra
188 fields are read from the central directory.
189 Issue: COMPRESS-321.
Torsten Curdt68db5fa2016-01-15 15:35:17 +0100190
Stefan Bodewigec075142015-01-26 05:12:09 +0000191Release 1.10
192------------
193
194Release 1.10 moves the former
195org.apache.commons.compress.compressors.z._internal_ package which
196breaks backwards compatibility for code which used the old package.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000197
198This also changes the superclass of ZCompressorInputStream which makes
199this class binary incompatible with the one of Compress 1.9. Code
200that extends ZCompressorInputStream will need to be recompiled in
201order to work with Compress 1.10.
Stefan Bodewigc100d2e2015-01-30 08:24:54 +0000202
Stefan Bodewigec075142015-01-26 05:12:09 +0000203New features:
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000204o CompressorStreamFactory can now auto-detect DEFLATE streams
205 with ZLIB header.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100206 Issue: COMPRESS-316. Thanks to Nick Burch.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000207o CompressorStreamFactory can now auto-detect LZMA streams.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100208 Issue: COMPRESS-313.
Stefan Bodewigec075142015-01-26 05:12:09 +0000209o Added support for parallel compression. This low-level API allows
210 a client to build a zip/jar file by using the class
211 org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.
212
213 Zip documentation updated with further notes about parallel features.
214
215 Please note that some aspects of jar creation need to be
216 handled by client code and is not part of commons-compress for this
217 release.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100218 Issue: COMPRESS-296. Thanks to Kristian Rosenvold.
Stefan Bodewigec075142015-01-26 05:12:09 +0000219o Cut overall object instantiation in half by changing file
220 header generation algorithm, for a 10-15 percent performance
221 improvement.
222
223 Also extracted two private methods createLocalFileHeader
224 and createCentralFileHeader in ZipArchiveOutputStream.
225 These may have some interesting additional usages in the
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100226 near future. Thanks to Kristian Rosenvold.
Stefan Bodewigec075142015-01-26 05:12:09 +0000227o New methods in ZipArchiveOutputStream and ZipFile allows
228 entries to be copied from one archive to another without
229 having to re-compress them.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100230 Issue: COMPRESS-295. Thanks to Kristian Rosenvold.
Stefan Bodewigec075142015-01-26 05:12:09 +0000231
232Fixed Bugs:
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000233o TarArchiveInputStream can now read entries with group or
234 user ids > 0x80000000.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100235 Issue: COMPRESS-314.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000236o TarArchiveOutputStream can now write entries with group or
237 user ids > 0x80000000.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100238 Issue: COMPRESS-315.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000239o TarArchiveEntry's constructor with a File and a String arg
240 didn't normalize the name.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100241 Issue: COMPRESS-312.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000242o ZipEncodingHelper no longer reads system properties directly
243 to determine the default charset.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100244 Issue: COMPRESS-308.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000245o BZip2CompressorInputStream#read would return -1 when asked to
246 read 0 bytes.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100247 Issue: COMPRESS-309.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000248o ArchiveStreamFactory fails to pass on the encoding when creating
249 some streams.
250 * ArjArchiveInputStream
251 * CpioArchiveInputStream
252 * DumpArchiveInputStream
253 * JarArchiveInputStream
254 * TarArchiveInputStream
255 * JarArchiveOutputStream
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100256 Issue: COMPRESS-306.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000257o Restore immutability/thread-safety to ArchiveStreamFactory.
258 The class is now immutable provided that the method setEntryEncoding
259 is not used. The class is thread-safe.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100260 Issue: COMPRESS-302.
Stefan Bodewigb1e2a022015-08-18 17:49:15 +0000261o Restore immutability/thread-safety to CompressorStreamFactory.
262 The class is now immutable provided that the method
263 setDecompressConcatenated is not used. The class is thread-safe.
264 Issue: COMPRESS-303.
Stefan Bodewigec075142015-01-26 05:12:09 +0000265o ZipFile logs a warning in its finalizer when its constructor
266 has thrown an exception reading the file - for example if the
267 file doesn't exist.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100268 Issue: COMPRESS-297.
Stefan Bodewigec075142015-01-26 05:12:09 +0000269o Improved error message when tar encounters a groupId that is
270 too big to write without using the STAR or POSIX format.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100271 Issue: COMPRESS-290. Thanks to Kristian Rosenvold.
Stefan Bodewigec075142015-01-26 05:12:09 +0000272o SevenZFile now throws the specific PasswordRequiredException
273 when it encounters an encrypted stream but no password has
274 been specified.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100275 Issue: COMPRESS-298.
Stefan Bodewigec075142015-01-26 05:12:09 +0000276
277Changes:
278o Moved the package
279 org.apache.commons.compress.compressors.z._internal_ to
280 org.apache.commons.compress.compressors.lzw and made it part
281 of the API that is officially supported. This will break
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100282 existing code that uses the old package. Thanks to Damjan Jovanovic.
Stefan Bodewigec075142015-01-26 05:12:09 +0000283
284For complete information on Apache Commons Compress, including instructions
285on how to submit bug reports, patches, or suggestions for improvement,
286see the Apache Commons Compress website:
287
288http://commons.apache.org/compress/
289
290Old Release Notes
291=================
292
Stefan Bodewigde633062014-10-09 12:00:48 +0000293Release 1.9
294-----------
295
296New features:
297o Added support for DEFLATE streams without any gzip framing.
298 Issue: COMPRESS-263.
299 Thanks to Matthias Stevens.
300
301Fixed Bugs:
302o When reading 7z files unknown file properties and properties of type
303 kDummy are now ignored.
304 Issue: COMPRESS-287.
305o Expanding 7z archives using LZMA compression could cause an
306 EOFException.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100307 Issue: COMPRESS-286.
Stefan Bodewigde633062014-10-09 12:00:48 +0000308o Long-Name and -link or PAX-header entries in TAR archives always had
309 the current time as last modfication time, creating archives that
310 are different at the byte level each time an archive was built.
311 Issue: COMPRESS-289.
312 Thanks to Bob Robertson.
313
314Changes:
315o Checking for XZ for Java may be expensive. The result will now be
316 cached outside of an OSGi environment. You can use the new
317 XZUtils#setCacheXZAvailability to overrride this default behavior.
318 Issue: COMPRESS-285.
319
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000320Release 1.8.1
Stefan Bodewigde633062014-10-09 12:00:48 +0000321-------------
Sebastian Bazley48882f12010-04-13 21:02:37 +0000322
Stefan Bodewig48d74702013-03-10 17:10:57 +0000323New features:
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000324o COMPRESS-272: CompressorStreamFactory can now auto-detect Unix compress
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100325 (".Z") streams.
Stefan Bodewig48d74702013-03-10 17:10:57 +0000326
Sebastian Bazley48882f12010-04-13 21:02:37 +0000327Fixed Bugs:
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000328o COMPRESS-270: The snappy, ar and tar inputstreams might fail to read from a
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100329 non-buffered stream in certain cases.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000330o COMPRESS-277: IOUtils#skip might skip fewer bytes than requested even though
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100331 more could be read from the stream.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000332o COMPRESS-276: ArchiveStreams now validate there is a current entry before
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100333 reading or writing entry data.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000334o ArjArchiveInputStream#canReadEntryData tested the current
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100335 entry of the stream rather than its argument.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000336o COMPRESS-274: ChangeSet#delete and deleteDir now properly deal with unnamed
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100337 entries.
338o COMPRESS-273: Added a few null checks to improve robustness.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000339o COMPRESS-278: TarArchiveInputStream failed to read archives with empty
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100340 gid/uid fields.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000341o COMPRESS-279: TarArchiveInputStream now again throws an exception when it
342 encounters a truncated archive while reading from the last
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100343 entry.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000344o COMPRESS-280: Adapted TarArchiveInputStream#skip to the modified
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100345 IOUtils#skip method. Thanks to BELUGA BEHR.
Stefan Bodewig48d74702013-03-10 17:10:57 +0000346
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000347Changes:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100348o The dependency on org.tukaani:xz is now marked as optional.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000349
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000350Release 1.8
351-----------
352
353New features:
354o GzipCompressorInputStream now provides access to the same
355 metadata that can be provided via GzipParameters when writing
356 a gzip stream.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100357 Issue: COMPRESS-260.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000358o SevenZOutputFile now supports chaining multiple
359 compression/encryption/filter methods and passing options to
360 the methods.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100361 Issue: COMPRESS-266.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000362o The (compression) method(s) can now be specified per entry in
363 SevenZOutputFile.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100364 Issue: COMPRESS-261.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000365o SevenZArchiveEntry "knows" which method(s) have been used to
366 write it to the archive.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100367 Issue: COMPRESS-258.
368o The 7z package now supports the delta filter as method.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000369o The 7z package now supports BCJ filters for several platforms.
370 You will need a version >= 1.5 of XZ for Java to read archives
371 using BCJ, though.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100372 Issue: COMPRESS-257.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000373
374Fixed Bugs:
375o BZip2CompressorInputStream read fewer bytes than possible from
376 a truncated stream.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100377 Issue: COMPRESS-253.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000378o SevenZFile failed claiming the dictionary was too large when
379 archives used LZMA compression for headers and content and
380 certain non-default dictionary sizes.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100381 Issue: COMPRESS-253.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000382o CompressorStreamFactory.createCompressorInputStream with
383 explicit compression did not honor decompressConcatenated
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100384 Issue: COMPRESS-259.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000385o TarArchiveInputStream will now read archives created by tar
386 implementations that encode big numbers by not adding a
387 trailing NUL.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100388 Issue: COMPRESS-262.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000389o ZipArchiveInputStream would return NUL bytes for the first 512
390 bytes of a STORED entry if it was the very first entry of the
391 archive.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100392 Issue: COMPRESS-264.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000393o When writing PAX/POSIX headers for TAR entries with
394 backslashes or certain non-ASCII characters in their name
395 TarArchiveOutputStream could fail.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100396 Issue: COMPRESS-265.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000397o ArchiveStreamFactory now throws a StreamingNotSupported - a
398 new subclass of ArchiveException - if it is asked to read from
399 or write to a stream and Commons Compress doesn't support
400 streaming for the format. This currently only applies to the
401 7z format.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100402 Issue: COMPRESS-267.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000403
404Release 1.7
405-----------
406
407New features:
408o Read-Only support for Snappy compression.
409 Issue: COMPRESS-147. Thanks to BELUGA BEHR.
410o Read-Only support for .Z compressed files.
411 Issue: COMPRESS-243. Thanks to Damjan Jovanovic.
412o ZipFile and ZipArchiveInputStream now support reading entries
413 compressed using the SHRINKING method. Thanks to Damjan Jovanovic.
414o GzipCompressorOutputStream now supports setting the compression
415 level and the header metadata (filename, comment, modification time,
416 operating system and extra flags)
417 Issue: COMPRESS-250. Thanks to Emmanuel Bourg.
418o ZipFile and ZipArchiveInputStream now support reading entries
419 compressed using the IMPLODE method.
420 Issue: COMPRESS-115. Thanks to Emmanuel Bourg.
421o ZipFile and the 7z file classes now implement Closeable and can be
422 used in try-with-resources constructs.
423
424Fixed Bugs:
425o SevenZOutputFile#closeArchiveEntry throws an exception when using
426 LZMA2 compression on Java8. Issue: COMPRESS-241.
427o 7z reading of big 64bit values could be wrong.
428 Issue: COMPRESS-244. Thanks to Nico Kruber.
429o TarArchiveInputStream could fail to read an archive completely.
430 Issue: COMPRESS-245.
431o The time-setters in X5455_ExtendedTimestamp now set the
432 corresponding flags explicitly - i.e. they set the bit if the valus
433 is not-null and reset it otherwise. This may cause
434 incompatibilities if you use setFlags to unset a bit and later set
435 the time to a non-null value - the flag will now be set.
436 Issue: COMPRESS-242.
437o SevenZOutputFile would create invalid archives if more than six
438 empty files or directories were included. Issue: COMPRESS-252.
439
440Release 1.6
441-----------
442
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100443Version 1.6 introduces changes to the internal API of the tar package that
444break backwards compatibility in the following rare cases. This version
445removes the package private TarBuffer class along with the protected "buffer"
446members in TarArchiveInputStream and TarArchiveOutputStream. This change will
447only affect you if you have created a subclass of one of the stream classes
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000448and accessed the buffer member or directly used the TarBuffer class.
449
450Changes in this version include:
451
452New features:
453o Added support for 7z archives. Most compression algorithms
454 can be read and written, LZMA and encryption are only
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100455 supported when reading. Issue: COMPRESS-54. Thanks to Damjan Jovanovic.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000456o Added read-only support for ARJ archives that don't use
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100457 compression. Issue: COMPRESS-226. Thanks to Damjan Jovanovic.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000458o DumpArchiveInputStream now supports an encoding parameter that
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100459 can be used to specify the encoding of file names.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000460o The CPIO streams now support an encoding parameter that can be
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100461 used to specify the encoding of file names.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000462o Read-only support for LZMA standalone compression has been added.
463 Issue: COMPRESS-111.
464
465Fixed Bugs:
466o TarBuffer.tryToConsumeSecondEOFRecord could throw a
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100467 NullPointerException Issue: COMPRESS-223. Thanks to Jeremy Gustie.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000468o Parsing of zip64 extra fields has become more lenient in order
469 to be able to read archives created by DotNetZip and maybe
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100470 other archivers as well. Issue: COMPRESS-228.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000471o TAR will now properly read the names of symbolic links with
472 long names that use the GNU variant to specify the long file
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100473 name. Issue: COMPRESS-229. Thanks to Christoph Gysin.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000474o ZipFile#getInputStream could return null if the archive
475 contained duplicate entries.
476 The class now also provides two new methods to obtain all
477 entries of a given name rather than just the first one.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100478 Issue: COMPRESS-227.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000479o CpioArchiveInputStream failed to read archives created by
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100480 Redline RPM. Issue: COMPRESS-236. Thanks to Andrew Duffy.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000481o TarArchiveOutputStream now properly handles link names that
482 are too long to fit into a traditional TAR header. Issue:
483 COMPRESS-237. Thanks to Emmanuel Bourg.
484o The auto-detecting create*InputStream methods of Archive and
485 CompressorStreamFactory could fail to detect the format of
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100486 blocking input streams. Issue: COMPRESS-239.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000487
488Changes:
489o Readabilty patch to TarArchiveInputStream. Issue:
490 COMPRESS-232. Thanks to BELUGA BEHR.
491o Performance improvements to TarArchiveInputStream, in
492 particular to the skip method. Issue: COMPRESS-234. Thanks to
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100493 BELUGA BEHR.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000494
495Release 1.5
496-----------
497
498New features:
499
500o CompressorStreamFactory has an option to create decompressing
501 streams that decompress the full input for formats that support
502 multiple concatenated streams.
503 Issue: COMPRESS-220.
504
505Fixed Bugs:
506
507o Typo in CompressorStreamFactory Javadoc
508 Issue: COMPRESS-218.
509 Thanks to Gili.
510o ArchiveStreamFactory's tar stream detection created false positives
511 for AIFF files.
512 Issue: COMPRESS-191.
513 Thanks to Jukka Zitting.
514o XZ for Java didn't provide an OSGi bundle. Compress' dependency on
515 it has now been marked optional so Compress itself can still be used
516 in an OSGi context.
517 Issue: COMPRESS-199.
518 Thanks to Jukka Zitting.
519o When specifying the encoding explicitly TarArchiveOutputStream would
520 write unreadable names in GNU mode or even cause errors in POSIX
521 mode for file names longer than 66 characters.
522 Issue: COMPRESS-200.
523 Thanks to Christian Schlichtherle.
524o Writing TAR PAX headers failed if the generated entry name ended
525 with a "/".
526 Issue: COMPRESS-203.
527o ZipArchiveInputStream sometimes failed to provide input to the
528 Inflater when it needed it, leading to reads returning 0.
529 Issue: COMPRESS-189.
530 Thanks to Daniel Lowe.
531o TarArchiveInputStream ignored the encoding for GNU long name
532 entries.
533 Issue: COMPRESS-212.
534o TarArchiveInputStream could leave the second EOF record inside the
535 stream it had just finished reading.
536 Issue: COMPRESS-206.
537 Thanks to Peter De Maeyer.
538o DumpArchiveInputStream no longer implicitly closes the original
539 input stream when it reaches the end of the archive.
540o ZipArchiveInputStream now consumes the remainder of the archive when
541 getNextZipEntry returns null.
542o Unit tests could fail if the source tree was checked out to a
543 directory tree containign spaces.
544 Issue: COMPRESS-205.
545 Thanks to Daniel Lowe.
546o Fixed a potential ArrayIndexOutOfBoundsException when reading STORED
547 entries from ZipArchiveInputStream.
548 Issue: COMPRESS-219.
549o CompressorStreamFactory can now be used without XZ for Java being
550 available.
551 Issue: COMPRESS-221.
552
553Changes:
554
555o Improved exception message if a zip archive cannot be read because
556 of an unsupported compression method.
557 Issue: COMPRESS-188.
558 Thanks to Harald Kuhn.
559o ArchiveStreamFactory has a setting for file name encoding that sets
560 up encoding for ZIP and TAR streams.
561 Issue: COMPRESS-192.
562 Thanks to Jukka Zitting.
563o TarArchiveEntry now has a method to verify its checksum.
564 Issue: COMPRESS-191.
565 Thanks to Jukka Zitting.
566o Split/spanned ZIP archives are now properly detected by
567 ArchiveStreamFactory but will cause an
568 UnsupportedZipFeatureException when read.
569o ZipArchiveInputStream now reads archives that start with a "PK00"
570 signature. Archives with this signatures are created when the
571 archiver was willing to split the archive but in the end only needed
572 a single segment - so didn't split anything.
573 Issue: COMPRESS-208.
574o TarArchiveEntry has a new constructor that allows setting linkFlag
575 and preserveLeadingSlashes at the same time.
576 Issue: COMPRESS-201.
577o ChangeSetPerformer has a new perform overload that uses a ZipFile
578 instance as input.
579 Issue: COMPRESS-159.
580o Garbage collection pressure has been reduced by reusing temporary
581 byte arrays in classes.
582 Issue: COMPRESS-172.
583 Thanks to Thomas Mair.
584o Can now handle zip extra field 0x5455 - Extended Timestamp.
585 Issue: COMPRESS-210.
586 Thanks to Julius Davies.
587o handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
588 Issue: COMPRESS-211.
589 Thanks to Julius Davies.
590o ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
591 Issue: COMPRESS-213.
592 Thanks to Julius Davies.
593o better support for unix symlinks in ZipFile entries.
594 Issue: COMPRESS-214.
595 Thanks to Julius Davies.
596o ZipFile's initialization has been improved for non-Zip64 archives.
597 Issue: COMPRESS-215.
598 Thanks to Robin Power.
599o Updated XZ for Java dependency to 1.2 as this version provides
600 proper OSGi manifest attributes.
601
602Release 1.4.1
603-------------
604
605This is a security bugfix release, see
606http://commons.apache.org/proper/commons-compress/security.html#Fixed_in_Apache_Commons_Compress_1.4.1
607
608Fixed Bugs:
609
610o Ported libbzip2's fallback sort algorithm to
611 BZip2CompressorOutputStream to speed up compression in certain
612 edge cases.
613
614Release 1.4
615-----------
616
617New features:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100618o COMPRESS-156: Support for the XZ format has been added.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000619
620Fixed Bugs:
621o COMPRESS-183: The tar package now allows the encoding of file names to be
622 specified and can optionally use PAX extension headers to
623 write non-ASCII file names.
624 The stream classes now write (or expect to read) archives that
625 use the platform's native encoding for file names. Apache
626 Commons Compress 1.3 used to strip everything but the lower
627 eight bits of each character which effectively only worked for
628 ASCII and ISO-8859-1 file names.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100629 This new default behavior is a breaking change.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000630o COMPRESS-184: TarArchiveInputStream failed to parse PAX headers that
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100631 contained non-ASCII characters.
632o COMPRESS-178: TarArchiveInputStream throws IllegalArgumentException instead of IOException
633o COMPRESS-179: TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long
634o COMPRESS-175: GNU Tar sometimes uses binary encoding for UID and GID
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000635o COMPRESS-171: ArchiveStreamFactory.createArchiveInputStream would claim
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100636 short text files were TAR archives.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000637o COMPRESS-164: ZipFile didn't work properly for archives using unicode extra
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100638 fields rather than UTF-8 filenames and the EFS-Flag.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000639o COMPRESS-169: For corrupt archives ZipFile would throw a RuntimeException in
640 some cases and an IOException in others. It will now
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100641 consistently throw an IOException.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000642
643Changes:
644o COMPRESS-182: The tar package can now write archives that use star/GNU/BSD
645 extensions or use the POSIX/PAX variant to store numeric
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100646 values that don't fit into the traditional header fields.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000647o COMPRESS-181: Added a workaround for a Bug some tar implementations that add
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100648 a NUL byte as first byte in numeric header fields.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000649o COMPRESS-176: Added a workaround for a Bug in WinZIP which uses backslashes
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100650 as path separators in Unicode Extra Fields.
651o COMPRESS-131: ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000652o COMPRESS-146: BZip2CompressorInputStream now optionally supports reading of
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100653 concatenated .bz2 files.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000654o COMPRESS-154: GZipCompressorInputStream now optionally supports reading of
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100655 concatenated .gz files.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000656o COMPRESS-16: The tar package can now read archives that use star/GNU/BSD
657 extensions for files that are longer than 8 GByte as well as
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100658 archives that use the POSIX/PAX variant.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000659o COMPRESS-165: The tar package can now write archives that use star/GNU/BSD
660 extensions for files that are longer than 8 GByte as well as
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100661 archives that use the POSIX/PAX variant.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000662o COMPRESS-166: The tar package can now use the POSIX/PAX variant for writing
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100663 entries with names longer than 100 characters.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000664
665Release 1.3
666-----------
667
668Commons Compress 1.3 is the first version to require Java5 at runtime.
669
670Changes in this version include:
671
672New features:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100673o Support for the Pack200 format has been added. Issue: COMPRESS-142.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000674o Read-only support for the format used by the Unix dump(8) tool
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100675 has been added. Issue: COMPRESS-132.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000676
677Fixed Bugs:
678o BZip2CompressorInputStream's getBytesRead method always
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100679 returned 0.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000680o ZipArchiveInputStream and ZipArchiveOutputStream could leak
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100681 resources on some JDKs. Issue: COMPRESS-152.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000682o TarArchiveOutputStream's getBytesWritten method didn't count
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100683 correctly. Issue: COMPRESS-160.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000684
685Changes:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100686o The ZIP package now supports Zip64 extensions. Issue: COMPRESS-36.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000687o The AR package now supports the BSD dialect of storing file
688 names longer than 16 chars (both reading and writing).
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100689 Issue: COMPRESS-144.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000690
691Release 1.2
692-----------
693
694New features:
695o COMPRESS-123: ZipArchiveEntry has a new method getRawName that provides the
696 original bytes that made up the name. This may allow user
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100697 code to detect the encoding.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000698o COMPRESS-122: TarArchiveEntry provides access to the flags that determine
699 whether it is an archived symbolic link, pipe or other
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100700 "uncommon" file system object.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000701
702Fixed Bugs:
703o COMPRESS-129: ZipArchiveInputStream could fail with a "Truncated ZIP" error
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100704 message for entries between 2 GByte and 4 GByte in size.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000705o COMPRESS-145: TarArchiveInputStream now detects sparse entries using the
706 oldgnu format and properly reports it cannot extract their
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100707 contents.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000708o COMPRESS-130: The Javadoc for ZipArchiveInputStream#skip now matches the
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100709 implementation, the code has been made more defensive.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000710o COMPRESS-140: ArArchiveInputStream fails if entries contain only blanks for
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100711 userId or groupId. Thanks to Trejkaz.
712o COMPRESS-139: ZipFile may leak resources on some JDKs.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000713o COMPRESS-125: BZip2CompressorInputStream throws IOException if
714 underlying stream returns available() == 0.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100715 Removed the check.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000716o COMPRESS-127: Calling close() on inputStream returned by
717 CompressorStreamFactory.createCompressorInputStream()
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100718 does not close the underlying input stream.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000719o COMPRESS-119: TarArchiveOutputStream#finish now writes all buffered
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100720 data to the stream
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000721
722Changes:
723o ZipFile now implements finalize which closes the underlying
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100724 file.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000725o COMPRESS-117: Certain tar files not recognised by
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100726 ArchiveStreamFactory.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000727
728Release 1.1
729-----------
730
731New features:
732o COMPRESS-108: Command-line interface to list archive contents.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100733 Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc]
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000734o COMPRESS-109: Tar implementation does not support Pax headers
735 Added support for reading pax headers.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100736 Note: does not support global pax headers
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000737o COMPRESS-103: ZipArchiveInputStream can optionally extract data that used
738 the STORED compression method and a data descriptor.
739 Doing so in a stream is not safe in general, so you have to
740 explicitly enable the feature. By default the stream will
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100741 throw an exception if it encounters such an entry.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000742o COMPRESS-98: The ZIP classes will throw specialized exceptions if any
743 attempt is made to read or write data that uses zip features
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100744 not supported (yet).
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000745o COMPRESS-99: ZipFile#getEntries returns entries in a predictable order -
746 the order they appear inside the central directory.
747 A new method getEntriesInPhysicalOrder returns entries in
748 order of the entry data, i.e. the order ZipArchiveInputStream
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100749 would see.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000750o The Archive*Stream and ZipFile classes now have
751 can(Read|Write)EntryData methods that can be used to check
752 whether a given entry's data can be read/written.
753 The method currently returns false for ZIP archives if an
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100754 entry uses an unsupported compression method or encryption.
755o COMPRESS-89: The ZIP classes now detect encrypted entries.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000756o COMPRESS-97: Added autodetection of compression format to
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100757 CompressorStreamFactory.
758o COMPRESS-95: Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000759o A new constructor of TarArchiveEntry can create entries with
760 names that start with slashes - the default is to strip
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100761 leading slashes in order to create relative path names.
762o ArchiveEntry now has a getLastModifiedDate method.
763o COMPRESS-78: Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000764
765Fixed Bugs:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100766o COMPRESS-72: Move acknowledgements from NOTICE to README
767o COMPRESS-113: TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size
768o COMPRESS-118: TarUtils.parseName does not properly handle characters outside the range 0-127
769o COMPRESS-107: ArchiveStreamFactory does not recognise tar files created by Ant
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000770o COMPRESS-110: Support "ustar" prefix field, which is used when file paths are longer
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100771 than 100 characters.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000772o COMPRESS-100: ZipArchiveInputStream will throw an exception if it detects an
773 entry that uses a data descriptor for a STORED entry since it
774 cannot reliably find the end of data for this "compression"
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100775 method.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000776o COMPRESS-101: ZipArchiveInputStream should now properly read archives that
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100777 use data descriptors but without the "unofficial" signature.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000778o COMPRESS-74: ZipArchiveInputStream failed to update the number of bytes
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100779 read properly.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000780o ArchiveInputStream has a new method getBytesRead that should
781 be preferred over getCount since the later may truncate the
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100782 number of bytes read for big archives.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000783o COMPRESS-85: The cpio archives created by CpioArchiveOutputStream couldn't
784 be read by many existing native implementations because the
785 archives contained multiple entries with the same inode/device
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100786 combinations and weren't padded to a blocksize of 512 bytes.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000787o COMPRESS-73: ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100788 more lenient when parsing extra fields.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000789o COMPRESS-82: cpio is terribly slow.
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100790 Documented that buffered streams are needed for performance
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000791o Improved exception message if the extra field data in ZIP
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100792 archives cannot be parsed.
793o COMPRESS-17: Tar format unspecified - current support documented.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000794o COMPRESS-94: ZipArchiveEntry's equals method was broken for entries created
795 with the String-arg constructor. This lead to broken ZIP
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100796 archives if two different entries had the same hash code. Thanks to Anon Devs.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000797o COMPRESS-87: ZipArchiveInputStream could repeatedly return 0 on read() when
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100798 the archive was truncated. Thanks to Antoni Mylka.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000799o COMPRESS-86: Tar archive entries holding the file name for names longer
800 than 100 characters in GNU longfile mode didn't properly
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100801 specify they'd be using the "oldgnu" extension.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000802o COMPRESS-83: Delegate all read and write methods in GZip stream in order to
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100803 speed up operations.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000804o The ar and cpio streams now properly read and write last
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100805 modified times.
806o COMPRESS-81: TarOutputStream can leave garbage at the end of the archive
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000807
808Changes:
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100809o COMPRESS-112: ArArchiveInputStream does not handle GNU extended filename records (//)
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000810o COMPRESS-105: Document that the name of an ZipArchiveEntry determines whether
811 an entry is considered a directory or not.
812 If you don't use the constructor with the File argument the entry's
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100813 name must end in a "/" in order for the entry to be known as a directory.
814o COMPRESS-79: Move DOS/Java time conversions into Zip utility class.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000815o COMPRESS-75: ZipArchiveInputStream does not show location in file
Torsten Curdtce9e0ce2016-01-15 15:31:59 +0100816 where a problem occurred.
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000817