blob: 1819576337402e5a662c434de22d7526e4d4f054 [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 Bodewigec075142015-01-26 05:12:09 +00008Release 1.10
9------------
10
11Release 1.10 moves the former
12org.apache.commons.compress.compressors.z._internal_ package which
13breaks backwards compatibility for code which used the old package.
14
15New features:
16o Added support for parallel compression. This low-level API allows
17 a client to build a zip/jar file by using the class
18 org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator.
19
20 Zip documentation updated with further notes about parallel features.
21
22 Please note that some aspects of jar creation need to be
23 handled by client code and is not part of commons-compress for this
24 release.
25 Issue: COMPRESS-296. Thanks to Kristian Rosenvold.
26o Cut overall object instantiation in half by changing file
27 header generation algorithm, for a 10-15 percent performance
28 improvement.
29
30 Also extracted two private methods createLocalFileHeader
31 and createCentralFileHeader in ZipArchiveOutputStream.
32 These may have some interesting additional usages in the
33 near future. Thanks to Kristian Rosenvold.
34o New methods in ZipArchiveOutputStream and ZipFile allows
35 entries to be copied from one archive to another without
36 having to re-compress them.
37 Issue: COMPRESS-295. Thanks to Kristian Rosenvold.
38
39Fixed Bugs:
40o ZipFile logs a warning in its finalizer when its constructor
41 has thrown an exception reading the file - for example if the
42 file doesn't exist.
43 Issue: COMPRESS-297.
44o Improved error message when tar encounters a groupId that is
45 too big to write without using the STAR or POSIX format.
46 Issue: COMPRESS-290. Thanks to Kristian Rosenvold.
47o SevenZFile now throws the specific PasswordRequiredException
48 when it encounters an encrypted stream but no password has
49 been specified.
50 Issue: COMPRESS-298.
51
52Changes:
53o Moved the package
54 org.apache.commons.compress.compressors.z._internal_ to
55 org.apache.commons.compress.compressors.lzw and made it part
56 of the API that is officially supported. This will break
57 existing code that uses the old package. Thanks to Damjan Jovanovic.
58
59For complete information on Apache Commons Compress, including instructions
60on how to submit bug reports, patches, or suggestions for improvement,
61see the Apache Commons Compress website:
62
63http://commons.apache.org/compress/
64
65Old Release Notes
66=================
67
Stefan Bodewigde633062014-10-09 12:00:48 +000068Release 1.9
69-----------
70
71New features:
72o Added support for DEFLATE streams without any gzip framing.
73 Issue: COMPRESS-263.
74 Thanks to Matthias Stevens.
75
76Fixed Bugs:
77o When reading 7z files unknown file properties and properties of type
78 kDummy are now ignored.
79 Issue: COMPRESS-287.
80o Expanding 7z archives using LZMA compression could cause an
81 EOFException.
82 Issue: COMPRESS-286.
83o Long-Name and -link or PAX-header entries in TAR archives always had
84 the current time as last modfication time, creating archives that
85 are different at the byte level each time an archive was built.
86 Issue: COMPRESS-289.
87 Thanks to Bob Robertson.
88
89Changes:
90o Checking for XZ for Java may be expensive. The result will now be
91 cached outside of an OSGi environment. You can use the new
92 XZUtils#setCacheXZAvailability to overrride this default behavior.
93 Issue: COMPRESS-285.
94
Stefan Bodewigec5eebf2014-05-09 18:28:42 +000095Release 1.8.1
Stefan Bodewigde633062014-10-09 12:00:48 +000096-------------
Sebastian Bazley48882f12010-04-13 21:02:37 +000097
Stefan Bodewig48d74702013-03-10 17:10:57 +000098New features:
Stefan Bodewigec5eebf2014-05-09 18:28:42 +000099o COMPRESS-272: CompressorStreamFactory can now auto-detect Unix compress
100 (".Z") streams.
Stefan Bodewig48d74702013-03-10 17:10:57 +0000101
Sebastian Bazley48882f12010-04-13 21:02:37 +0000102Fixed Bugs:
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000103o COMPRESS-270: The snappy, ar and tar inputstreams might fail to read from a
104 non-buffered stream in certain cases.
105o COMPRESS-277: IOUtils#skip might skip fewer bytes than requested even though
106 more could be read from the stream.
107o COMPRESS-276: ArchiveStreams now validate there is a current entry before
Stefan Bodewig5356ed32014-05-12 08:09:30 +0000108 reading or writing entry data.
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000109o ArjArchiveInputStream#canReadEntryData tested the current
110 entry of the stream rather than its argument.
111o COMPRESS-274: ChangeSet#delete and deleteDir now properly deal with unnamed
112 entries.
113o COMPRESS-273: Added a few null checks to improve robustness.
114o COMPRESS-278: TarArchiveInputStream failed to read archives with empty
115 gid/uid fields.
116o COMPRESS-279: TarArchiveInputStream now again throws an exception when it
117 encounters a truncated archive while reading from the last
118 entry.
119o COMPRESS-280: Adapted TarArchiveInputStream#skip to the modified
120 IOUtils#skip method. Thanks to BELUGA BEHR.
Stefan Bodewig48d74702013-03-10 17:10:57 +0000121
Stefan Bodewigec5eebf2014-05-09 18:28:42 +0000122Changes:
123o The dependency on org.tukaani:xz is now marked as optional.
124
Stefan Bodewig0b71b472014-10-05 13:36:58 +0000125Release 1.8
126-----------
127
128New features:
129o GzipCompressorInputStream now provides access to the same
130 metadata that can be provided via GzipParameters when writing
131 a gzip stream.
132 Issue: COMPRESS-260.
133o SevenZOutputFile now supports chaining multiple
134 compression/encryption/filter methods and passing options to
135 the methods.
136 Issue: COMPRESS-266.
137o The (compression) method(s) can now be specified per entry in
138 SevenZOutputFile.
139 Issue: COMPRESS-261.
140o SevenZArchiveEntry "knows" which method(s) have been used to
141 write it to the archive.
142 Issue: COMPRESS-258.
143o The 7z package now supports the delta filter as method.
144o The 7z package now supports BCJ filters for several platforms.
145 You will need a version >= 1.5 of XZ for Java to read archives
146 using BCJ, though.
147 Issue: COMPRESS-257.
148
149Fixed Bugs:
150o BZip2CompressorInputStream read fewer bytes than possible from
151 a truncated stream.
152 Issue: COMPRESS-253.
153o SevenZFile failed claiming the dictionary was too large when
154 archives used LZMA compression for headers and content and
155 certain non-default dictionary sizes.
156 Issue: COMPRESS-253.
157o CompressorStreamFactory.createCompressorInputStream with
158 explicit compression did not honor decompressConcatenated
159 Issue: COMPRESS-259.
160o TarArchiveInputStream will now read archives created by tar
161 implementations that encode big numbers by not adding a
162 trailing NUL.
163 Issue: COMPRESS-262.
164o ZipArchiveInputStream would return NUL bytes for the first 512
165 bytes of a STORED entry if it was the very first entry of the
166 archive.
167 Issue: COMPRESS-264.
168o When writing PAX/POSIX headers for TAR entries with
169 backslashes or certain non-ASCII characters in their name
170 TarArchiveOutputStream could fail.
171 Issue: COMPRESS-265.
172o ArchiveStreamFactory now throws a StreamingNotSupported - a
173 new subclass of ArchiveException - if it is asked to read from
174 or write to a stream and Commons Compress doesn't support
175 streaming for the format. This currently only applies to the
176 7z format.
177 Issue: COMPRESS-267.
178
179Release 1.7
180-----------
181
182New features:
183o Read-Only support for Snappy compression.
184 Issue: COMPRESS-147. Thanks to BELUGA BEHR.
185o Read-Only support for .Z compressed files.
186 Issue: COMPRESS-243. Thanks to Damjan Jovanovic.
187o ZipFile and ZipArchiveInputStream now support reading entries
188 compressed using the SHRINKING method. Thanks to Damjan Jovanovic.
189o GzipCompressorOutputStream now supports setting the compression
190 level and the header metadata (filename, comment, modification time,
191 operating system and extra flags)
192 Issue: COMPRESS-250. Thanks to Emmanuel Bourg.
193o ZipFile and ZipArchiveInputStream now support reading entries
194 compressed using the IMPLODE method.
195 Issue: COMPRESS-115. Thanks to Emmanuel Bourg.
196o ZipFile and the 7z file classes now implement Closeable and can be
197 used in try-with-resources constructs.
198
199Fixed Bugs:
200o SevenZOutputFile#closeArchiveEntry throws an exception when using
201 LZMA2 compression on Java8. Issue: COMPRESS-241.
202o 7z reading of big 64bit values could be wrong.
203 Issue: COMPRESS-244. Thanks to Nico Kruber.
204o TarArchiveInputStream could fail to read an archive completely.
205 Issue: COMPRESS-245.
206o The time-setters in X5455_ExtendedTimestamp now set the
207 corresponding flags explicitly - i.e. they set the bit if the valus
208 is not-null and reset it otherwise. This may cause
209 incompatibilities if you use setFlags to unset a bit and later set
210 the time to a non-null value - the flag will now be set.
211 Issue: COMPRESS-242.
212o SevenZOutputFile would create invalid archives if more than six
213 empty files or directories were included. Issue: COMPRESS-252.
214
215Release 1.6
216-----------
217
218Version 1.6 introduces changes to the internal API of the tar package that
219break backwards compatibility in the following rare cases. This version
220removes the package private TarBuffer class along with the protected "buffer"
221members in TarArchiveInputStream and TarArchiveOutputStream. This change will
222only affect you if you have created a subclass of one of the stream classes
223and accessed the buffer member or directly used the TarBuffer class.
224
225Changes in this version include:
226
227New features:
228o Added support for 7z archives. Most compression algorithms
229 can be read and written, LZMA and encryption are only
230 supported when reading. Issue: COMPRESS-54. Thanks to Damjan Jovanovic.
231o Added read-only support for ARJ archives that don't use
232 compression. Issue: COMPRESS-226. Thanks to Damjan Jovanovic.
233o DumpArchiveInputStream now supports an encoding parameter that
234 can be used to specify the encoding of file names.
235o The CPIO streams now support an encoding parameter that can be
236 used to specify the encoding of file names.
237o Read-only support for LZMA standalone compression has been added.
238 Issue: COMPRESS-111.
239
240Fixed Bugs:
241o TarBuffer.tryToConsumeSecondEOFRecord could throw a
242 NullPointerException Issue: COMPRESS-223. Thanks to Jeremy Gustie.
243o Parsing of zip64 extra fields has become more lenient in order
244 to be able to read archives created by DotNetZip and maybe
245 other archivers as well. Issue: COMPRESS-228.
246o TAR will now properly read the names of symbolic links with
247 long names that use the GNU variant to specify the long file
248 name. Issue: COMPRESS-229. Thanks to Christoph Gysin.
249o ZipFile#getInputStream could return null if the archive
250 contained duplicate entries.
251 The class now also provides two new methods to obtain all
252 entries of a given name rather than just the first one.
253 Issue: COMPRESS-227.
254o CpioArchiveInputStream failed to read archives created by
255 Redline RPM. Issue: COMPRESS-236. Thanks to Andrew Duffy.
256o TarArchiveOutputStream now properly handles link names that
257 are too long to fit into a traditional TAR header. Issue:
258 COMPRESS-237. Thanks to Emmanuel Bourg.
259o The auto-detecting create*InputStream methods of Archive and
260 CompressorStreamFactory could fail to detect the format of
261 blocking input streams. Issue: COMPRESS-239.
262
263Changes:
264o Readabilty patch to TarArchiveInputStream. Issue:
265 COMPRESS-232. Thanks to BELUGA BEHR.
266o Performance improvements to TarArchiveInputStream, in
267 particular to the skip method. Issue: COMPRESS-234. Thanks to
268 BELUGA BEHR.
269
270Release 1.5
271-----------
272
273New features:
274
275o CompressorStreamFactory has an option to create decompressing
276 streams that decompress the full input for formats that support
277 multiple concatenated streams.
278 Issue: COMPRESS-220.
279
280Fixed Bugs:
281
282o Typo in CompressorStreamFactory Javadoc
283 Issue: COMPRESS-218.
284 Thanks to Gili.
285o ArchiveStreamFactory's tar stream detection created false positives
286 for AIFF files.
287 Issue: COMPRESS-191.
288 Thanks to Jukka Zitting.
289o XZ for Java didn't provide an OSGi bundle. Compress' dependency on
290 it has now been marked optional so Compress itself can still be used
291 in an OSGi context.
292 Issue: COMPRESS-199.
293 Thanks to Jukka Zitting.
294o When specifying the encoding explicitly TarArchiveOutputStream would
295 write unreadable names in GNU mode or even cause errors in POSIX
296 mode for file names longer than 66 characters.
297 Issue: COMPRESS-200.
298 Thanks to Christian Schlichtherle.
299o Writing TAR PAX headers failed if the generated entry name ended
300 with a "/".
301 Issue: COMPRESS-203.
302o ZipArchiveInputStream sometimes failed to provide input to the
303 Inflater when it needed it, leading to reads returning 0.
304 Issue: COMPRESS-189.
305 Thanks to Daniel Lowe.
306o TarArchiveInputStream ignored the encoding for GNU long name
307 entries.
308 Issue: COMPRESS-212.
309o TarArchiveInputStream could leave the second EOF record inside the
310 stream it had just finished reading.
311 Issue: COMPRESS-206.
312 Thanks to Peter De Maeyer.
313o DumpArchiveInputStream no longer implicitly closes the original
314 input stream when it reaches the end of the archive.
315o ZipArchiveInputStream now consumes the remainder of the archive when
316 getNextZipEntry returns null.
317o Unit tests could fail if the source tree was checked out to a
318 directory tree containign spaces.
319 Issue: COMPRESS-205.
320 Thanks to Daniel Lowe.
321o Fixed a potential ArrayIndexOutOfBoundsException when reading STORED
322 entries from ZipArchiveInputStream.
323 Issue: COMPRESS-219.
324o CompressorStreamFactory can now be used without XZ for Java being
325 available.
326 Issue: COMPRESS-221.
327
328Changes:
329
330o Improved exception message if a zip archive cannot be read because
331 of an unsupported compression method.
332 Issue: COMPRESS-188.
333 Thanks to Harald Kuhn.
334o ArchiveStreamFactory has a setting for file name encoding that sets
335 up encoding for ZIP and TAR streams.
336 Issue: COMPRESS-192.
337 Thanks to Jukka Zitting.
338o TarArchiveEntry now has a method to verify its checksum.
339 Issue: COMPRESS-191.
340 Thanks to Jukka Zitting.
341o Split/spanned ZIP archives are now properly detected by
342 ArchiveStreamFactory but will cause an
343 UnsupportedZipFeatureException when read.
344o ZipArchiveInputStream now reads archives that start with a "PK00"
345 signature. Archives with this signatures are created when the
346 archiver was willing to split the archive but in the end only needed
347 a single segment - so didn't split anything.
348 Issue: COMPRESS-208.
349o TarArchiveEntry has a new constructor that allows setting linkFlag
350 and preserveLeadingSlashes at the same time.
351 Issue: COMPRESS-201.
352o ChangeSetPerformer has a new perform overload that uses a ZipFile
353 instance as input.
354 Issue: COMPRESS-159.
355o Garbage collection pressure has been reduced by reusing temporary
356 byte arrays in classes.
357 Issue: COMPRESS-172.
358 Thanks to Thomas Mair.
359o Can now handle zip extra field 0x5455 - Extended Timestamp.
360 Issue: COMPRESS-210.
361 Thanks to Julius Davies.
362o handle zip extra field 0x7875 - Info Zip New Unix Extra Field.
363 Issue: COMPRESS-211.
364 Thanks to Julius Davies.
365o ZipShort, ZipLong, ZipEightByteInteger should implement Serializable
366 Issue: COMPRESS-213.
367 Thanks to Julius Davies.
368o better support for unix symlinks in ZipFile entries.
369 Issue: COMPRESS-214.
370 Thanks to Julius Davies.
371o ZipFile's initialization has been improved for non-Zip64 archives.
372 Issue: COMPRESS-215.
373 Thanks to Robin Power.
374o Updated XZ for Java dependency to 1.2 as this version provides
375 proper OSGi manifest attributes.
376
377Release 1.4.1
378-------------
379
380This is a security bugfix release, see
381http://commons.apache.org/proper/commons-compress/security.html#Fixed_in_Apache_Commons_Compress_1.4.1
382
383Fixed Bugs:
384
385o Ported libbzip2's fallback sort algorithm to
386 BZip2CompressorOutputStream to speed up compression in certain
387 edge cases.
388
389Release 1.4
390-----------
391
392New features:
393o COMPRESS-156: Support for the XZ format has been added.
394
395Fixed Bugs:
396o COMPRESS-183: The tar package now allows the encoding of file names to be
397 specified and can optionally use PAX extension headers to
398 write non-ASCII file names.
399 The stream classes now write (or expect to read) archives that
400 use the platform's native encoding for file names. Apache
401 Commons Compress 1.3 used to strip everything but the lower
402 eight bits of each character which effectively only worked for
403 ASCII and ISO-8859-1 file names.
404 This new default behavior is a breaking change.
405o COMPRESS-184: TarArchiveInputStream failed to parse PAX headers that
406 contained non-ASCII characters.
407o COMPRESS-178: TarArchiveInputStream throws IllegalArgumentException instead of IOException
408o COMPRESS-179: TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long
409o COMPRESS-175: GNU Tar sometimes uses binary encoding for UID and GID
410o COMPRESS-171: ArchiveStreamFactory.createArchiveInputStream would claim
411 short text files were TAR archives.
412o COMPRESS-164: ZipFile didn't work properly for archives using unicode extra
413 fields rather than UTF-8 filenames and the EFS-Flag.
414o COMPRESS-169: For corrupt archives ZipFile would throw a RuntimeException in
415 some cases and an IOException in others. It will now
416 consistently throw an IOException.
417
418Changes:
419o COMPRESS-182: The tar package can now write archives that use star/GNU/BSD
420 extensions or use the POSIX/PAX variant to store numeric
421 values that don't fit into the traditional header fields.
422o COMPRESS-181: Added a workaround for a Bug some tar implementations that add
423 a NUL byte as first byte in numeric header fields.
424o COMPRESS-176: Added a workaround for a Bug in WinZIP which uses backslashes
425 as path separators in Unicode Extra Fields.
426o COMPRESS-131: ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed.
427o COMPRESS-146: BZip2CompressorInputStream now optionally supports reading of
428 concatenated .bz2 files.
429o COMPRESS-154: GZipCompressorInputStream now optionally supports reading of
430 concatenated .gz files.
431o COMPRESS-16: The tar package can now read archives that use star/GNU/BSD
432 extensions for files that are longer than 8 GByte as well as
433 archives that use the POSIX/PAX variant.
434o COMPRESS-165: The tar package can now write archives that use star/GNU/BSD
435 extensions for files that are longer than 8 GByte as well as
436 archives that use the POSIX/PAX variant.
437o COMPRESS-166: The tar package can now use the POSIX/PAX variant for writing
438 entries with names longer than 100 characters.
439
440Release 1.3
441-----------
442
443Commons Compress 1.3 is the first version to require Java5 at runtime.
444
445Changes in this version include:
446
447New features:
448o Support for the Pack200 format has been added. Issue: COMPRESS-142.
449o Read-only support for the format used by the Unix dump(8) tool
450 has been added. Issue: COMPRESS-132.
451
452Fixed Bugs:
453o BZip2CompressorInputStream's getBytesRead method always
454 returned 0.
455o ZipArchiveInputStream and ZipArchiveOutputStream could leak
456 resources on some JDKs. Issue: COMPRESS-152.
457o TarArchiveOutputStream's getBytesWritten method didn't count
458 correctly. Issue: COMPRESS-160.
459
460Changes:
461o The ZIP package now supports Zip64 extensions. Issue: COMPRESS-36.
462o The AR package now supports the BSD dialect of storing file
463 names longer than 16 chars (both reading and writing).
464 Issue: COMPRESS-144.
465
466Release 1.2
467-----------
468
469New features:
470o COMPRESS-123: ZipArchiveEntry has a new method getRawName that provides the
471 original bytes that made up the name. This may allow user
472 code to detect the encoding.
473o COMPRESS-122: TarArchiveEntry provides access to the flags that determine
474 whether it is an archived symbolic link, pipe or other
475 "uncommon" file system object.
476
477Fixed Bugs:
478o COMPRESS-129: ZipArchiveInputStream could fail with a "Truncated ZIP" error
479 message for entries between 2 GByte and 4 GByte in size.
480o COMPRESS-145: TarArchiveInputStream now detects sparse entries using the
481 oldgnu format and properly reports it cannot extract their
482 contents.
483o COMPRESS-130: The Javadoc for ZipArchiveInputStream#skip now matches the
484 implementation, the code has been made more defensive.
485o COMPRESS-140: ArArchiveInputStream fails if entries contain only blanks for
486 userId or groupId. Thanks to Trejkaz.
487o COMPRESS-139: ZipFile may leak resources on some JDKs.
488o COMPRESS-125: BZip2CompressorInputStream throws IOException if
489 underlying stream returns available() == 0.
490 Removed the check.
491o COMPRESS-127: Calling close() on inputStream returned by
492 CompressorStreamFactory.createCompressorInputStream()
493 does not close the underlying input stream.
494o COMPRESS-119: TarArchiveOutputStream#finish now writes all buffered
495 data to the stream
496
497Changes:
498o ZipFile now implements finalize which closes the underlying
499 file.
500o COMPRESS-117: Certain tar files not recognised by
501 ArchiveStreamFactory.
502
503Release 1.1
504-----------
505
506New features:
507o COMPRESS-108: Command-line interface to list archive contents.
508 Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc]
509o COMPRESS-109: Tar implementation does not support Pax headers
510 Added support for reading pax headers.
511 Note: does not support global pax headers
512o COMPRESS-103: ZipArchiveInputStream can optionally extract data that used
513 the STORED compression method and a data descriptor.
514 Doing so in a stream is not safe in general, so you have to
515 explicitly enable the feature. By default the stream will
516 throw an exception if it encounters such an entry.
517o COMPRESS-98: The ZIP classes will throw specialized exceptions if any
518 attempt is made to read or write data that uses zip features
519 not supported (yet).
520o COMPRESS-99: ZipFile#getEntries returns entries in a predictable order -
521 the order they appear inside the central directory.
522 A new method getEntriesInPhysicalOrder returns entries in
523 order of the entry data, i.e. the order ZipArchiveInputStream
524 would see.
525o The Archive*Stream and ZipFile classes now have
526 can(Read|Write)EntryData methods that can be used to check
527 whether a given entry's data can be read/written.
528 The method currently returns false for ZIP archives if an
529 entry uses an unsupported compression method or encryption.
530o COMPRESS-89: The ZIP classes now detect encrypted entries.
531o COMPRESS-97: Added autodetection of compression format to
532 CompressorStreamFactory.
533o COMPRESS-95: Improve ExceptionMessages in ArchiveStreamFactory Thanks to Joerg Bellmann.
534o A new constructor of TarArchiveEntry can create entries with
535 names that start with slashes - the default is to strip
536 leading slashes in order to create relative path names.
537o ArchiveEntry now has a getLastModifiedDate method.
538o COMPRESS-78: Add a BZip2Utils class modelled after GZipUtils Thanks to Jukka Zitting.
539
540Fixed Bugs:
541o COMPRESS-72: Move acknowledgements from NOTICE to README
542o COMPRESS-113: TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size
543o COMPRESS-118: TarUtils.parseName does not properly handle characters outside the range 0-127
544o COMPRESS-107: ArchiveStreamFactory does not recognise tar files created by Ant
545o COMPRESS-110: Support "ustar" prefix field, which is used when file paths are longer
546 than 100 characters.
547o COMPRESS-100: ZipArchiveInputStream will throw an exception if it detects an
548 entry that uses a data descriptor for a STORED entry since it
549 cannot reliably find the end of data for this "compression"
550 method.
551o COMPRESS-101: ZipArchiveInputStream should now properly read archives that
552 use data descriptors but without the "unofficial" signature.
553o COMPRESS-74: ZipArchiveInputStream failed to update the number of bytes
554 read properly.
555o ArchiveInputStream has a new method getBytesRead that should
556 be preferred over getCount since the later may truncate the
557 number of bytes read for big archives.
558o COMPRESS-85: The cpio archives created by CpioArchiveOutputStream couldn't
559 be read by many existing native implementations because the
560 archives contained multiple entries with the same inode/device
561 combinations and weren't padded to a blocksize of 512 bytes.
562o COMPRESS-73: ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now
563 more lenient when parsing extra fields.
564o COMPRESS-82: cpio is terribly slow.
565 Documented that buffered streams are needed for performance
566o Improved exception message if the extra field data in ZIP
567 archives cannot be parsed.
568o COMPRESS-17: Tar format unspecified - current support documented.
569o COMPRESS-94: ZipArchiveEntry's equals method was broken for entries created
570 with the String-arg constructor. This lead to broken ZIP
571 archives if two different entries had the same hash code. Thanks to Anon Devs.
572o COMPRESS-87: ZipArchiveInputStream could repeatedly return 0 on read() when
573 the archive was truncated. Thanks to Antoni Mylka.
574o COMPRESS-86: Tar archive entries holding the file name for names longer
575 than 100 characters in GNU longfile mode didn't properly
576 specify they'd be using the "oldgnu" extension.
577o COMPRESS-83: Delegate all read and write methods in GZip stream in order to
578 speed up operations.
579o The ar and cpio streams now properly read and write last
580 modified times.
581o COMPRESS-81: TarOutputStream can leave garbage at the end of the archive
582
583Changes:
584o COMPRESS-112: ArArchiveInputStream does not handle GNU extended filename records (//)
585o COMPRESS-105: Document that the name of an ZipArchiveEntry determines whether
586 an entry is considered a directory or not.
587 If you don't use the constructor with the File argument the entry's
588 name must end in a "/" in order for the entry to be known as a directory.
589o COMPRESS-79: Move DOS/Java time conversions into Zip utility class.
590o COMPRESS-75: ZipArchiveInputStream does not show location in file
591 where a problem occurred.
592