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