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