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