-
Notifications
You must be signed in to change notification settings - Fork 273
/
Copy pathRELEASE-NOTES.txt
2345 lines (1996 loc) · 99.5 KB
/
RELEASE-NOTES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Apache Commons Compress
Version 1.27.1
Release Notes
Apache Commons Compress defines an API for working with
compression and archive formats. These include bzip2, gzip, pack200,
LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
This is a feature and maintenance release. Java 8 or later is required.
Changes in this version
-----------------------
Changes in this version include the following.
Fixed Bugs
----------
* COMPRESS-686: Compression into BZip2 format has unexpected end of file when using a BufferedOutputStream. Thanks to Richard Blank, Gary Gregory.
Changes
-------
* Bump org.apache.commons:commons-lang3 from 3.15.0 to 3.16.0 #556. Thanks to Dependabot, Gary Gregory.
Resources
---------
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress
Version 1.27.0
Release Notes
Apache Commons Compress defines an API for working with
compression and archive formats. These include bzip2, gzip, pack200,
LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
This is a feature and maintenance release. Java 8 or later is required.
Changes in this version
-----------------------
Changes in this version include the following.
New Features
------------
* Add ArchiveInputStream.forEach(IOConsumer). Thanks to Gary Gregory.
* Add ArchiveInputStream.iterator(). Thanks to Gary Gregory.
* Add ArchiveOutputStream.isFinished(). Thanks to Gary Gregory.
* Add ArchiveOutputStream.checkFinished(). Thanks to Gary Gregory.
Fixed Bugs
----------
* Fix PMD UnnecessaryFullyQualifiedName and others. Thanks to Gary Gregory.
* COMPRESS-681: Support reading a 7z file that writing archive properties #541. Thanks to joker53-1, Gary Gregory.
* Upgrade commons-io from 2.15.1 to 2.16.1 #513 Thanks to Mike Drob, Gary Gregory.
* CompressorOutputStream now extends FilterOutputStream. Thanks to Gary Gregory.
* ArchiveOutputStream now extends FilterOutputStream. Thanks to Gary Gregory.
* COMPRESS-685: Update Javadoc description for GzipCompressorInputStream #551. Thanks to Archie L. Cobbs, Gary Gregory.
* Replace FileNameUtil.getCompressedFileName(String) use of Locale.ENGLISH with Locale.ROOT. Thanks to Gary Gregory.
* Fix SpotBugs DLS_DEAD_LOCAL_STORE in SevenZFile.readPackInfo(ByteBuffer, Archive). Thanks to Gary Gregory.
* Fix SpotBugs NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE in ZipFile.openZipChannel(Path, long, OpenOption[]). Thanks to Gary Gregory.
* Fix SpotBugs UC_USELESS_OBJECT in unpack200.CpBands.parseCpSignature(InputStream). Thanks to Gary Gregory.
* Fix PMD UselessOverridingMethod in unpack200.bytecode.InnerClassesAttribute. Thanks to Gary Gregory.
* Fix PMD UselessOverridingMethod in unpack200.bytecode.LineNumberTableAttribute. Thanks to Gary Gregory.
* Fix PMD CheckSkipResult in ZipArchiveInputStream.closeEntry(). Thanks to Gary Gregory.
Changes
-------
* COMPRESS-684: Replace assert with Exception
* Bump org.apache.commons:commons-parent from 69 to 72 #537. Thanks to Dependabot, Gary Gregory.
* Bump PMD from 6.x to 7.2.0. Thanks to Dependabot, Gary Gregory.
* Bump commons-codec:commons-codec from 1.17.0 to 1.17.1 #544. Thanks to Dependabot, Gary Gregory.
* Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.15.0 #545. Thanks to Dependabot, Gary Gregory.
* Bump com.github.luben:zstd-jni from 1.5.6-3 to 1.5.6-4 #548. Thanks to Dependabot, Gary Gregory.
* Bump org.tukaani:xz from 1.9 to 1.10 #550. Thanks to Dependabot, Gary Gregory.
* Bump org.hamcrest:hamcrest from 2.2 to 3.0 #552. Thanks to Dependabot, Gary Gregory.
Resources
---------
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress
Version 1.26.2
Release Notes
Apache Commons Compress defines an API for working with
compression and archive formats. These include bzip2, gzip, pack200,
LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
Minor feature and maintenance release.
Changes in this version
-----------------------
Changes in this version include the following.
Fixed Bugs
----------
* COMPRESS-665: Deprecate org.apache.commons.compress.utils.CharsetNames in favor or java.nio.charset.StandardCharsets. Thanks to Gary Gregory, Elliotte Rusty Harold.
* COMPRESS-674: Validate TarArchiveEntry checksums #500. Thanks to Gren Elliot.
* COMPRESS-676: OSGi: Remove unresolvable dependencies in manifest and make the commons-io packages really optional. Thanks to Martin Schneider.
* Avoid possible NullPointerException in org.apache.commons.compress.utils.Sets.newHashSet(E...). Thanks to Gary Gregory.
* COMPRESS-677: ZipArchiveOutputStream.setEncoding(String) with a null value throws IllegalArgumentException. Thanks to Jeffrey Adamson, Gary Gregory.
* org.apache.commons.compress.harmony.unpack200.Archive.unpack() should not close streams it does not own (when constructed from Archive(InputStream, JarOutputStream)). Thanks to Gary Gregory.
* ArArchiveOutputStream doesn't pad correctly when a file name length is odd and greater than 16 (padding missing). Thanks to takaaki nakama, Gary Gregory.
* COMPRESS-678: ArArchiveOutputStream should check that a file name length greater than 16 fits in a header. Thanks to Gary Gregory.
* ArArchiveOutputStream implicit narrowing conversion in compound assignment. Thanks to Gary Gregory.
* COMPRESS-679: Regression on parallel processing of 7zip files. Thanks to Mikaël MECHOULAM, Gary Gregory.
* COMPRESS-675: Regression in pack200's Archive class -- underlying InputStream is now closed. Thanks to Tim Allison, Gary Gregory.
* Avoid NullPointerException in java.nio.channels.spi.AbstractInterruptibleChannel.close() when calling org.apache.commons.compress.archivers.zip.FileRandomAccessOutputStream.close(). Thanks to Gary Gregory.
* Fix SpotBugs NP_NULL_PARAM_DEREF in Sets.newHashSet(). Thanks to Gary Gregory.
* Private class' method PackingLogger.setVerbose(boolean) should be private. Thanks to Gary Gregory.
Changes
-------
* Bump org.apache.commons:commons-parent from 66 to 69 #495, #508. Thanks to Dependabot, Gary Gregory.
* Bump org.ow2.asm:asm from 9.6 to 9.7 #504. Thanks to Dependabot, Gary Gregory.
* Bump com.github.luben:zstd-jni from 1.5.5-11 to 1.5.6-2 #510. Thanks to Gary Gregory, Dependabot.
* Bump commons-io:commons-io from 2.15.1 to 2.16.1 #514. Thanks to Gary Gregory, Dependabot.
* Bump org.slf4j:slf4j-api from 2.0.12 to 2.0.13 #519. Thanks to Dependabot.
* Bump commons-codec:commons-codec from 1.16.1 to 1.17.0. Thanks to Dependabot.
Resources
---------
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress
Version 1.26.1
Release Notes
Apache Commons Compress defines an API for working with compression and
archive formats. These include: bzip2, gzip, pack200, LZMA, XZ, Snappy,
traditional Unix Compress, DEFLATE, DEFLATE64, LZ4, Brotli, Zstandard and
ar, cpio, jar, tar, zip, dump, 7z, arj.
Minor feature and maintenance release.
Changes in this version
-----------------------
Changes in this version include the following.
Fixed Bugs
----------
* COMPRESS-659: TarArchiveOutputStream should use Commons IO Charsets instead of Commons Codec Charsets. Thanks to David Handermann, Gary Gregory.
* COMPRESS-660: Add org.apache.commons.codec to OSGi imports #482. Thanks to 660, Gary Gregory.
* COMPRESS-664: Return null value from getNextEntry() for empty file #486. Thanks to Radek Kraus.
* COMPRESS-664: Remove unused variables in tests #487. Thanks to Elliotte Rusty Harold.
* COMPRESS-666: Multithreaded access to Tar archive throws java.util.zip.ZipException: Corrupt GZIP trailer. Thanks to Cosmin Carabet, Gary Gregory.
* COMPRESS-644: ArchiveStreamFactory.detect(InputStream) returns TAR for ICO file #386. Thanks to Tim Allison, Gary Gregory.
* COMPRESS-661: ArchiveInputStream markSupported should always return false. Thanks to Alexander Veit, Tilman Hausherr, Gary Gregory.
Removed
-------
* COMPRESS-662: Remove out of date jar and scripts #483. Thanks to Christoph Loy, Gary Gregory.
Resources
---------
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress
Version 1.26.0
Release Notes
Apache Commons Compress defines an API for working with compression and
archive formats. These include: bzip2, gzip, pack200, LZMA, XZ, Snappy,
traditional Unix Compress, DEFLATE, DEFLATE64, LZ4, Brotli, Zstandard and
ar, cpio, jar, tar, zip, dump, 7z, arj.
Minor feature and maintenance release.
Changes in this version include:
New Features
------------
* Add and use ZipFile.builder(), ZipFile.Builder, and deprecate constructors. Thanks to Gary Gregory.
* Add and use SevenZFile.builder(), SevenZFile.Builder, and deprecate constructors. Thanks to Gary Gregory.
* Add and use ArchiveInputStream.getCharset(). Thanks to Gary Gregory.
* Add and use ArchiveEntry.resolveIn(Path). Thanks to Gary Gregory.
* Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.
* Add new runtime dependencies on commons-codec, commons-lang3 and commons-io
Fixed Bugs
---------
* COMPRESS-632: Check for invalid PAX values in TarArchiveEntry #438. Thanks to Yakov Shafranovich, Gary Gregory.
* COMPRESS-632: Fix for zero size headers in ArjInputStream #439. Thanks to Yakov Shafranovich, Gary Gregory.
* COMPRESS-632: Fixes and tests for ArInputStream #440. Thanks to Yakov Shafranovich.
* COMPRESS-632: Fixes for dump file parsing #442. Thanks to Yakov Shafranovich, Gary Gregory.
* COMPRESS-632: Improve CPIO exception detection and handling #441. Thanks to Yakov Shafranovich, Gary Gregory.
* Deprecate SkipShieldingInputStream without replacement (no longer used). Thanks to Gary Gregory.
* Reuse commons-codec, don't duplicate class PureJavaCrc32C (removed package-private class). Thanks to Gary Gregory.
* Reuse commons-codec, don't duplicate class XXHash32 (deprecated class). Thanks to Gary Gregory.
* Reuse commons-io, don't duplicate class Charsets (deprecated class). Thanks to Gary Gregory.
* Reuse commons-io, don't duplicate class IOUtils (deprecated methods). Thanks to Gary Gregory.
* Reuse commons-io, don't duplicate class BoundedInputStream (deprecated class). Thanks to Gary Gregory.
* Reuse commons-io, don't duplicate class FileTimes (deprecated TimeUtils methods). Thanks to Gary Gregory.
* Reuse Arrays.equals(byte[], byte[]) and deprecate ArchiveUtils.isEqual(byte[], byte[]). Thanks to Gary Gregory.
* Add a null-check for the class loader of OsgiUtils #451. Thanks to alumi, Gary Gregory.
* Add a null-check in Pack200.newInstance(String, String). Thanks to alumi, Gary Gregory.
* Deprecate ChecksumCalculatingInputStream in favor of java.util.zip.CheckedInputStream. Thanks to Gary Gregory.
* Deprecate CRC32VerifyingInputStream.CRC32VerifyingInputStream(InputStream, long, int). Thanks to Gary Gregory.
* COMPRESS-655: FramedSnappyCompressorOutputStream produces incorrect output when writing a large buffer #457. Thanks to cpreisler, Gary Gregory.
* COMPRESS-657: Fix TAR directory entries being misinterpreted as files #460. Thanks to Sebastian Schuberth, Gary Gregory.
* Deprecate unused method FileNameUtils.getBaseName(String). Thanks to Gary Gregory.
* Deprecate unused method FileNameUtils.getExtension(String). Thanks to Gary Gregory.
* ArchiveInputStream.BoundedInputStream.read() incorrectly adds 1 for EOF to the bytes read count. Thanks to Gary Gregory.
* Deprecate IOUtils.read(File, byte[]). Thanks to Gary Gregory.
* Deprecate IOUtils.copyRange(InputStream, long, OutputStream, int). Thanks to Gary Gregory.
* COMPRESS-653: ZipArchiveOutputStream multi archive updates metadata in incorrect file #455. Thanks to Zbynek Vyskovsky, Gary Gregory.
* Deprecate ByteUtils.InputStreamByteSupplier. Thanks to Gary Gregory.
* Deprecate ByteUtils.fromLittleEndian(InputStream, int). Thanks to Gary Gregory.
* Deprecate ByteUtils.toLittleEndian(DataOutput, long, int). Thanks to Gary Gregory.
* Reduce duplication by having ArchiveInputStream extend FilterInputStream. Thanks to Gary Gregory.
* Support preamble garbage in ZipArchiveInputStream #471. Thanks to Zbynek Vyskovsky, Gary Gregory.
* COMPRESS-658: Fix formatting the lowest expressable DOS time #472. Thanks to Arnout Engelen.
* Drop reflection from ExtraFieldUtils static initialization #480. Thanks to Romain Manni-Bucau, Gary Gregory.
* Preserve exception causation in ExtraFieldUtils.register(Class). Thanks to Gary Gregory.
Changes
-------
* Bump commons-lang3 from 3.13.0 to 3.14.0. Thanks to Gary Gregory.
* Bump com.github.marschall:memoryfilesystem from 2.6.1 to 2.8.0 #444, #458. Thanks to Dependabot.
* Bump commons-io from 2.15.0 to 2.15.1. Thanks to Gary Gregory.
* Bump org.apache.commons:commons-parent from 64 to 66. Thanks to Dependabot.
* Bump com.github.luben:zstd-jni from 1.5.5-10 to 1.5.5-11 #448. Thanks to Dependabot.
* Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.12. Thanks to Dependabot.
* Add dependency on commons-codec:commons-codec:1.16.1.
* Add dependency on org.apache.commons:commons-lang3:3.14.0.
* Add dependency on commons-io:commons-io:2.15.1.
Resources
---------
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress
Version 1.25.0
Release Notes
Apache Commons Compress defines an API for working with compression and
archive formats. These include: bzip2, gzip, pack200, LZMA, XZ, Snappy,
traditional Unix Compress, DEFLATE, DEFLATE64, LZ4, Brotli, Zstandard and
ar, cpio, jar, tar, zip, dump, 7z, arj.
Minor feature and maintenance release.
Changes in this version include:
New features
------------
* Add GzipParameters.getFileName() and deprecate getFilename(). Thanks to Gary Gregory.
* Add GzipParameters.setFileName(String) and deprecate setFilename(String). Thanks to Gary Gregory.
* Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
* Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
* Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
* Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
* Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
* Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
* Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
* Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
* Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
* Add XYUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
* Add XYUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
* Add XYUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
* Add GzipUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String). Thanks to Gary Gregory.
* Add GzipUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String). Thanks to Gary Gregory.
* Add GzipUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String). Thanks to Gary Gregory.
* Add SevenZOutputFile.putArchiveEntry(SevenZArchiveEntry) and deprecate putArchiveEntry(ArchiveEntry). Thanks to Gary Gregory.
* Add generics to ChangeSet and ChangeSetPerformer. Thanks to Gary Gregory.
* Add generics to ArchiveStreamProvider and friends. Thanks to Gary Gregory.
* Add a generic type parameter to ArchiveOutputStream and avoid unchecked/unconfirmed type casts in subclasses. Thanks to Gary Gregory.
* Add a generic type parameter to ArchiveInputStream and deprecate redundant get methods in subclasses. Thanks to Gary Gregory.
* COMPRESS-648: Add ability to restrict autodetection in CompressorStreamFactory #433. Thanks to Yakov Shafranovich, Gary Gregory.
Fixed Bugs
----------
* Precompile regular expression in ArArchiveInputStream.isBSDLongName(String). Thanks to Gary Gregory.
* Precompile regular expression in ArArchiveInputStream.isGNULongName(String). Thanks to Gary Gregory.
* Precompile regular expression in TarArchiveEntry.parseInstantFromDecimalSeconds(String). Thanks to Gary Gregory.
* Precompile regular expression in ChangeSet.addDeletion(Change). Thanks to Gary Gregory.
* COMPRESS-649: Improve performance in BlockLZ4CompressorOutputStream. Thanks to Gary Gregory.
* Null-guard Lister.main(String[]) for programmatic invocation. Thanks to Gary Gregory.
* NPE in pack200.NewAttributeBands.Reference.addAttributeToBand(NewAttribute, InputStream). Thanks to Gary Gregory.
* Incorrect lazy initialization and update of static field in pack200.CodecEncoding.getSpecifier(Codec, Codec). Thanks to Gary Gregory.
* Incorrect string comparison in unpack200.AttributeLayout.numBackwardsCallables(). Thanks to Gary Gregory.
* Inefficient use of keySet iterator instead of entrySet iterator in pack200.PackingOptions.addOrUpdateAttributeActions(List, Map, int). Thanks to Gary Gregory.
* Package private class pack200.IcBands.IcTuple should be a static inner class. Thanks to Gary Gregory.
* Private class ZipFile.BoundedFileChannelInputStream should be a static inner class. Thanks to Gary Gregory.
* Refactor internal SevenZ AES256SHA256Decoder InputStream into a named static inner class. Thanks to Gary Gregory.
* Refactor internal SevenZ AES256SHA256Decoder OutputStream into a named static inner class. Thanks to Gary Gregory.
* Use the root Locale for string conversion of command line options in org.apache.commons.compress.archivers.sevenz.CLI. Thanks to Gary Gregory.
* Calling PackingUtils.config(PackingOptions) with null now closes the internal FileHandler. Thanks to Gary Gregory.
* COMPRESS-650: LZ4 compressor throws IndexOutOfBoundsException. Thanks to Chad Preisler.
* COMPRESS-632: LZWInputStream.initializeTables(int) should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException. Thanks to Yakov Shafranovich, Gary Gregory.
* COMPRESS-647: Throw IOException instead of ArrayIndexOutOfBoundsException when reading Zip with data descriptor entries. Thanks to Robin Schimpf, Gary Gregory.
Changes
-------
* Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413. Thanks to Dependabot.
* Bump commons-io:commons-io from 2.13.0 to 2.15.0. Thanks to Gary Gregory.
* Bump com.github.luben:zstd-jni from 1.5.5-5 to 1.5.5-10 #422, #431. Thanks to Dependabot.
* Bump org.ow2.asm:asm from 9.5 to 9.6 #421. Thanks to Dependabot.
* Bump org.apache.commons:commons-parent from 62 to 64 #421. Thanks to Dependabot, Gary Gregory.
Historical list of changes: https://commons.apache.org/proper/commons-compress/changes-report.html
For complete information on Apache Commons Compress, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons Compress website:
https://commons.apache.org/proper/commons-compress/
Download page: https://commons.apache.org/proper/commons-compress/download_compress.cgi
Have fun!
-Apache Commons Team
-----------------------------------------------------------------------------
Apache Commons Compress 1.24.0 RELEASE NOTES
Apache Commons Compress defines an API for working with
compression and archive formats. These include: bzip2, gzip, pack200,
LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
New features
------------
* Make ZipArchiveEntry.getLocalHeaderOffset() public. Thanks to Gary Gregory.
Fixed Bugs
----------
* Use try-with-resources in ArchiveStreamFactory #391. Thanks to Daniele Galloppo.
* Javadoc and code comments: Sanitize grammar issues and typos #393. Thanks to Martin Wiesner.
* Remove redundant (null) initializations #394. Thanks to Martin Wiesner.
* [StepSecurity] ci: Harden GitHub Actions #396. Thanks to step-security-bot, Gary Gregory.
Changes
-------
* Bump zstd-jni from 1.5.4-2 to 1.5.5-5 #377, #383, #388, #390, #400. Thanks to Dependabot.
* Bump memoryfilesystem from 2.5.0 to 2.6.1 #381, #385, #387. Thanks to Dependabot.
* Bump commons-parent from 56 to 61 #384. Thanks to Dependabot, Gary Gregory.
* Bump commons-io:commons-io from 2.11.0 to 2.13.0. Thanks to Gary Gregory.
* Bump commons-lang3 from 3.12.0 to 3.13.0. Thanks to Gary Gregory.
* Bump org.slf4j:slf4j-api from 2.0.7 to 2.0.8. Thanks to Gary Gregory.
For complete information on Apache Commons Compress, including instructions
on how to submit bug reports, patches, or suggestions for improvement,
see the Apache Commons Compress website:
https://commons.apache.org/compress/
Download it from https://commons.apache.org/compress/download_compress.cgi
-----------------------------------------------------------------------------
Apache Commons Compress 1.23.0 RELEASE NOTES
Apache Commons Compress defines an API for working with
compression and archive formats. These include: bzip2, gzip, pack200,
LZMA, XZ, Snappy, traditional Unix Compress, DEFLATE, DEFLATE64, LZ4,
Brotli, Zstandard and ar, cpio, jar, tar, zip, dump, 7z, arj.
New features
------------
* Use FileTime for time fields in SevenZipArchiveEntry #256.
Issue: COMPRESS-614. Thanks to Andre Brait, Gary Gregory.
* Fix calculation the offset of the first ZIP central directory entry #334.
Issue: COMPRESS-621. Thanks to Glavo.
* Add encryption support for SevenZ #332.
Issue: COMPRESS-633. Thanks to Daniel Santos, Bruno P. Kinoshita, Gary Gregory.
* Support for extra time data in Zip archives #345.
Issue: COMPRESS-613. Thanks to Andre Brait, Gary Gregory, Bruno P. Kinoshita.
* Add org.apache.commons.compress.archivers.zip.DefaultBackingStoreSupplier to write to a custom folder instead of the default temporary folder.
Issue: COMPRESS-621. Thanks to Gary Gregory.
* Add capability to configure Deflater strategy in GzipCompressorOutputStream: GzipParameters.setDeflateStrategy(int).
Issue: COMPRESS-600. Thanks to Gary Gregory, Pascal Davoust.
Fixed Bugs
----------
* Implicit narrowing conversion in compound assignment. Thanks to CodeQL, Gary Gregory.
* Avoid NPE in FileNameUtils.getBaseName(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory.
* Avoid NPE in FileNameUtils.getExtension(Path) for paths with zero elements like root paths. Thanks to CodeQL, Gary Gregory.
* LZMA2Decoder.decode() looses original exception. Thanks to Gary Gregory.
* Extract conditions and avoid duplicate code. #297. Thanks to Arturo Bernal.
* Remove duplicate conditions. Use switch instead. #298. Thanks to Arturo Bernal.
* Replace JUnit 3 and 4 with JUnit 5 #344, #346. Thanks to Robin Schimpf.
* Make 'ZipFile.offsetComparator' static #353. Thanks to Glavo.
* The GzipCompressorOutputStream#writeHeader() uses ISO_8859_1 to write the file name and comment.
If the strings contains non-ISO_8859_1 characters, unknown characters are displayed after decompression.
Use percent encoding for non ISO_8859_1 characters.
Issue: COMPRESS-638. Thanks to Radar wen, Gary Gregory, Michael Osipov.
* Port some code from IO to NIO APIs. Thanks to Jonathan Leitschuh, Gary Gregory.
* pack200: Fix FileBands misusing InputStream#read(byte[]) #360. Thanks to Una, Gary Gregory, Jochen Wiedmann, quaternary, Bruno P. Kinoshita.
* Add TarArchiveEntry.getLinkFlag() #365.
Issue: COMPRESS-641. Thanks to XenoAmess, Gary Gregory, Bruno P. Kinoshita.
* Integer overflow ArithmeticException in TarArchiveOutputStream #368.
Issue: COMPRESS-642. Thanks to Anton Klarén, Gary Gregory.
* org.apache.commons.compress.archivers.zip.ZipFile.finalize() should not write to std err.
Issue: COMPRESS-642. Thanks to Dominik Stadler, Stefan Bodewig, Gary Gregory.
Changes
-------
* Bump mockito.version from 4.8.0 to 4.11.0 #328, #331, #340, #348. Thanks to Dependabot.
* Bump pmd from 6.50.0 to 6.53.0. Thanks to Gary Gregory.
* Bump memoryfilesystem from 2.3.0 to 2.5.0 #330, #359. Thanks to Dependabot.
* Bump slf4j-api from 2.0.3 to 2.0.7 #329, #333, #341, #371. Thanks to Dependabot.
* Bump japicmp from 0.16.0 to 0.17.1. Thanks to Gary Gregory.
* Bump commons-parent from 54 to 56 #339, #349. Thanks to Dependabot.
* Bump zstd-jni from 1.5.2-5 to 1.5.4-2 #362, #364. Thanks to Dependabot.
Removed
-------
* Remove BZip2CompressorOutputStream.finalize() which only wrote to std err. Thanks to Gary Gregory.
For complete information on Apache Commons Compress, including instructions
on how to submit bug reports, patches, or suggestions for improvement,
see the Apache Commons Compress website:
https://commons.apache.org/compress/
Download it from https://commons.apache.org/compress/download_compress.cgi
-----------------------------------------------------------------------------
Release 1.22
------------
New features
------------
* Migrate zip package to use NIO #236.
Issue: COMPRESS-602. Thanks to Postelnicu George, Gary Gregory.
* Add APK file extension constants: ArchiveStreamFactory.APK, APKM, APKS, XAPK. Thanks to Gary Gregory.
* ArchiveStreamFactory.createArchiveInputStream(String, InputStream, String) supports the "APK" format (it's a JAR). Thanks to Gary Gregory.
* Expander example now has NIO Path versions of IO File APIs. Thanks to Gary Gregory.
* Improve TAR support for file times #254.
Issue: COMPRESS-612. Thanks to Andre Brait, Gary Gregory.
* Add SevenZArchiveEntry.setContentMethods(SevenZMethodConfiguration...). Thanks to Gary Gregory.
Fixed Bugs
----------
* Fix some compiler warnings in pack200 packages. Thanks to Gary Gregory.
* Close File input stream after unpacking in Pack200UnpackerAdapter.unpack(File, JarOutputStream). Thanks to Gary Gregory.
* Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not close its given input stream. Thanks to Gary Gregory.
* Fix minor problem in examples.
Issue: COMPRESS-596. Thanks to Tamas Mucs.
* Add a limit to the copy buffer in IOUtils.readRange() to
avoid reading more from a channel than asked for.
Github Pull Request #214.
Issue: COMPRESS-584. Thanks to Matthijs Laan, Peter Lee.
* Documentation nits #217. Thanks to Helder Magalhães, Gary Gregory, PeterAlfredLee.
* Replace wrapper Collections.sort is with an instance method directly. #245. Thanks to Arturo Bernal.
* Replace manual comparisons with Comparator.comparingInt() #244. Thanks to Arturo Bernal.
* Replace manual copy of array contents with System.arraycopy() #246. Thanks to Arturo Bernal.
* Fix thread safety issues when encoding 7z password #248. Thanks to Glavo, Bruno P. Kinoshita, PeterAlfredLee, Gary Gregory.
* bzip2: calculate median-of-3 on unsigned values #242. Thanks to Peter Dettman.
* Use Math.min and Math.max calculations. #247. Thanks to Arturo Bernal, Gary Gregory, Bruno P. Kinoshita.
* Expander should be able to work if an entry's name is "./".
Issue: COMPRESS-603. Thanks to Matt Sicker.
* Ensure compatibility with Java 8 #252.
Issue: COMPRESS-604. Thanks to Andre Brait.
* Use StringBuilder instead of StringBuffer. #284. Thanks to Arturo Bernal.
* Inline variable. Remove redundant local variable. #283. Thanks to Arturo Bernal.
* Use compare method #285. Thanks to Arturo Bernal.
* Remove Unnecessary interface modifiers #281. Thanks to Arturo Bernal.
* Avoid use C-style array declaration. #282. Thanks to Arturo Bernal.
* ChecksumVerifyingInputStream.read() does not always validate checksum at end-of-stream. Thanks to Gary Gregory.
* Fix TarFileTest #289. Thanks to Matt Juntunen.
* Update Wikipedia link in TarUtils.java:627.
Issue: COMPRESS-625. Thanks to MrBump, Gary Gregory.
* OutOfMemoryError on malformed pack200 input (attributes).
Issue: COMPRESS-626. Thanks to Andrii Hudz, Gary Gregory.
* OutOfMemoryError on malformed pack200 input (org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase).
Issue: COMPRESS-628. Thanks to Andrii Hudz, Gary Gregory.
* OutOfMemoryError on malformed unpack200 input (org.apache.commons.compress.harmony.unpack200.NewAttributeBands.readNextUnionCase).
Issue: COMPRESS-628. Thanks to Gary Gregory.
* Some input streams are not closed in org.apache.commons.compress.harmony.pack200.PackingUtils. Thanks to Gary Gregory.
* Pack200 causes a 'archive.3E' error if it?s not in the system class loader.
Issue: COMPRESS-627. Thanks to anatawa12, Gary Gregory.
Changes
-------
* Bump actions/cache from 2.1.6 to 3.0.10 #230, #257, #305, #320. Thanks to Dependabot, Gary Gregory.
* Bump actions/checkout from 2.3.4 to 3.1.0 #226, #227, #251, #300, #321. Thanks to Dependabot, Gary Gregory.
* Bump actions/setup-java from 2 to 3.5.1 #278. Thanks to Dependabot.
* Bump github/codeql-action from 1 to 2 #287. Thanks to Dependabot.
* Bump mockito-core from 3.11.1 to 4.6.1 #209, #224, #231, #235, #243, #253, #286, #294. Thanks to Dependabot.
* Bump org.apache.felix.framework from 7.0.0 to 7.0.1 #208. Thanks to Dependabot.
* Bump memoryfilesystem from 2.1.0 to 2.3.0 #212, #237. Thanks to Dependabot.
* Bump zstd-jni from 1.5.0-2 to 1.5.2-5 #215, #233, #238, #240, #250, #291, #326. Thanks to Dependabot, Gary Gregory.
* Bump Pack200 packages from ASM 3.2 to 9.2 #216.
Breaks binary compatibility in the internals of the pack200 implementation:
- org.apache.commons.compress.harmony.pack200.Segment
- org.apache.commons.compress.harmony.pack200.SegmentMethodVisitor
- org.apache.commons.compress.harmony.pack200.SegmentAnnotationVisitor
- org.apache.commons.compress.harmony.pack200.SegmentFieldVisitor
Issue: COMPRESS-582. Thanks to Alex Landau, Stephan, Gary Gregory.
* Bump asm from 9.2 to 9.4 #279, #322. Thanks to Dependabot.
* Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #221, #249, #288, #308. Thanks to Dependabot.
* Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #296, #309, #311. Thanks to Gary Gregory, Dependabot.
* Bump pmd from 6.44.0 to 6.50.0. Thanks to Gary Gregory.
* Bump commons.japicmp.version from 0.15.3 to 0.16.0. Thanks to Gary Gregory.
* Bump maven-bundle-plugin from 5.1.2 to 5.1.8 #234, #239, #290, #292, #301, #304. Thanks to Dependabot.
* Bump org.apache.felix.framework from 7.0.1 to 7.0.5 #232, #295. Thanks to Dependabot.
* Bump slf4j-api from 1.7.30 to 2.0.3 #213, #241, #258, #310, #314, #315, #318. Thanks to Dependabot.
* Bump commons-parent from 52 to 54 #280. Thanks to Dependabot, Gary Gregory.
* Bump commons.jacoco.version from 0.8.7 to 0.8.8. Thanks to Gary Gregory.
* Bump junit.version from 5.8.2 to 5.9.1 #302, #317. Thanks to Dependabot.
* Bump mockito.version from 4.6.1 to 4.8.0 #307, #312. Thanks to Dependabot.
* Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7. Thanks to Gary Gregory.
For complete information on Apache Commons Compress, including instructions
on how to submit bug reports, patches, or suggestions for improvement,
see the Apache Commons Compress website:
https://commons.apache.org/compress/
-----------------------------------------------------------------------------
Release 1.21
------------
Compress 1.21 is the first release to require Java 8 to build and run.
SevenZFileOptions has a new setting that needs to be enabled
explicitly if SevenZFile should try to recover broken archives - a
feature introduced with Commons Compress 1.19. This is a breaking
change if you relied on the recovery attempt. The change was made to
detect broken archives sooner, and to mitigate the OOM exploit.
Several formats now throw IOExceptions when reading broken archives or
streams that would have caused arbitrary RuntimeExceptions in earlier
versions of Compress.
New features
------------
* Add writePreamble to ZipArchiveInputStream. This method could
write raw data to zip archive before any entry was written to
the zip archive.
For most of the time, this is used to create self-extracting
zip.
Github Pull Request #127.
Issue: COMPRESS-550.
Thanks to Scott Frederick.
* Added support for random access to the TAR packages.
Github Pull Request #113.
Issue: COMPRESS-540.
Thanks to Robin Schimpf.
* Added support for BufferPool in ZstdCompressorInputStream.
Github Pull Request #165.
Issue: COMPRESS-565.
Thanks to Michael L Heuer.
* Commons Compress cannot be built with JDK14 due to Pack200 removal.
Add Pack200 implementation from Apache Harmony.
Issue: COMPRESS-507.
Thanks to Gary Gregory, Apache Harmony.
* Add a new AlwaysWithCompatibility in Zip64Mode, this is a
compromise for some libraries including 7z and Expand-Archive
Powershell utility(and likely Excel).
And we will encode both the LFH offset and Disk Number Start
in the ZIP64 Extended Information Extra Field - even if only
the disk number needs to be encoded.
Github Pull Request #169.
Issue: COMPRESS-565.
Thanks to Evgenii Bovykin.
* gzip deflate buffer size is now configurable.
Issue: COMPRESS-566.
Thanks to Brett Okken.
Fixed Bugs
----------
* Fix bugs in random access of 7z. Problems may happen
in a mixture use of random access and sequential access
of 7z.
Github Pull Request #95.
Issue: COMPRESS-505.
* Fix bugs in random access of 7z. Exceptions are thrown
when reading the first entry multiple times by random
access.
Issue: COMPRESS-510.
* Add '/' to directories with long name in tar. This is to
resolve the ambiguous behavior of the TarArchiveEntry.getName()
method between directory with short name and long name.
Issue: COMPRESS-509.
Thanks to Petr Vasak.
* Removed the PowerMock dependency.
Issue: COMPRESS-520.
Thanks to Robin Schimpf.
* Added improved checks to detect corrupted bzip2 streams and
throw the expected IOException rather than obscure
RuntimeExceptions.
See also COMPRESS-519.
Issue: COMPRESS-516.
* Improved parsing of X5455_ExtendedTimestamp ZIP extra field.
Issue: COMPRESS-517.
* ZipArchiveInputStream and ZipFile will now throw an
IOException rather than a RuntimeException if the zip64 extra
field of an entry could not be parsed.
Issue: COMPRESS-518.
* Improved detection of corrupt ZIP archives in ZipArchiveInputStream.
Issue: COMPRESS-523.
* Added improved checks to detect corrupted deflate64 streams and
throw the expected IOException rather than obscure
RuntimeExceptions.
Issues: COMPRESS-521, COMPRESS-522, COMPRESS-525, COMPRESS-526, and COMPRESS-527.
* Add the archive name in the exception in the constructor of
ZipFile to make it a more specific exception.
Github Pull Request #102.
Issue: COMPRESS-515.
Thanks to ian-lavallee.
* Throw IOException when it encounters a non-number while parsing pax
header.
Issue: COMPRESS-530.
* Throw IOException when a tar archive contains a PAX header
without any normal entry following it.
Issue: COMPRESS-531.
* Added improved checks to detect corrupted IMPLODED streams and
throw the expected IOException rather than obscure
RuntimeExceptions.
Issue: COMPRESS-532.
* Throw expected IOException instead of NumberFormatException if
it encounters non-numbers when parsing pax headers for tarball.
Throw IllegalArgumentException instead of RuntimeExceptions if
the file name is longer than 100 bytes with the longFileMode
of LONGFILE_ERROR, and address this in java docs.
Throw IllegalArgumentException instead of RuntimeExceptions if
the any of the numeric values of an entry exceeds the limits
of a traditional tar header while bigNumberMode is
BIGNUMBER_ERROR, and address this in java docs.
Issue: COMPRESS-529.
* Fix for test fails on Windows. The tests are failing because the
default charset is not UTF-8.
Issue: COMPRESS-543.
Thanks to wulf2333.
* TarArchiveInputStream can not detect a truncated tar in skip()
and skipRecordPadding().
Issue: COMPRESS-544.
Thanks to Aditya Prasad.
* Make the memory allocation in SevenZFile.readFilesInfo a lazy
allocation to avoid OOM when dealing some giant 7z archives.
Github Pull Request #120.
Also added sanity checks before even trying to parse an
archive and made SevenZFileOptions' maxMemorySizeInKb apply to
the stored metadata for an archive.
And further added an option that needs to be enabled in order
to make SevenZFile try to recover a broken archive. This is a
backwards incompatible change.
Issue: COMPRESS-542.
Thanks to theobisproject.
* ZipArchiveInputStream should throw an exception if a corrputed
zip64 extra field is met.
Issue: COMPRESS-546.
Thanks to Maksim Zuev.
* Add a new maven profile in pom.xml for JDK14+ to ignore the
failing tests about Pack200.
This has later been superseeded by adding the Apache Harmony
classes for Pack200 support.
* Throw an IOException when reading the zip extra field if the
length is too short.
Issue: COMPRESS-548.
Thanks to Maksim Zuev.
* Throw an declared IOException if a null entry is met when
reading a global pax header instead of a runtime NPE.
Issue: COMPRESS-554.
Thanks to Maksim Zuev.
* ZIP extraction could lead to ArrayIndexOutOfBoundsExceptions
rather than the expected IOException.
Issue: COMPRESS-545.
Thanks to Maksim Zuev.
* Add asserts for Arrays.copyOf in X0017_StrongEncryptionHeader.
Issue: COMPRESS-547.
Thanks to Maksim Zuev.
* Fix for the CFH signature detect in ZipArchiveInputStream.
The problem could be reproduced by a zip archive with Data
Descriptor and STORED, and without the Data Descriptor
signature.
* The length validation in TarArchiveInputStream.parsePaxHeaders
should also consider the headers with length smaller than 1
and ignore these headers.
Issue: COMPRESS-553.
Thanks to Maksim Zuev.
* Fix accidentally added '/' to file names.
This problem is caused by the incomplete fix of COMPRESS-509.
Github Pull Request #151.
Issue: COMPRESS-558.
Thanks to Robin Schimpf.
* As sparse entries can be successfully parsed now,
TarArchiveInputStream.canReadEntryData should return
true if the entry is a sparse entry.
Github Pull Request #153.
Issue: COMPRESS-560.
Thanks to Robin Schimpf.
* SparseFilesTest#testExtractPaxGNU should be skipped
if the version of GNU tar binary is 1.28.
Github Pull Request #152.
Issue: COMPRESS-559.
Thanks to Robin Schimpf.
* Removed an empty loop that was just warming the planet for
certain ZIP archives.
Github Pull Request #172.
Thanks to Fabian Meumertzheim.
* Made some of the stream classes used internally throw
IOExceptions on illegal arguments rather than
RuntimeExceptions to make it more likely that corrupt archives
cause expected checked exceptions rather than RuntimException
for various formats.
Fixes a specific case for ZIP but affects other formats as
well.
Issue: COMPRESS-567.
* Simplify Assertions #205.
Thanks to Arturo Bernal.
* Checked the sizes read for archive entries and reject archives
as broken with negative entry sizes.
Fixes an infinite loop in the new TarFile class but affects
several formats.
Issue: COMPRESS-569.
* OSGi detection was broken and so we always cached whether
XZ/brotli/zstd/LZMA have been available even in OSGi
environments.
Issue: COMPRESS-552.
* SevenZFile.getEntries now return a copy of entries.
Issue: COMPRESS-571.
* Handling of sparse tar entries has been hardened to ensure bad
inputs cause expected IOExceptions rather than RuntimeExceptions.
Issue: COMPRESS-575.
* The parser for GNU sparse tar headers could throw a
NullPointerExcpetion rather than an IOException if the archive
ended while more sparse headers were expected.
Changes
-------
* Made sure ZstdCompressorOutputStream no longer used
deprecated ZstOutputStream constructors.
Github Pull Request #94.
Thanks to Peter Alfred Lee.
* Make compression level of ParallelScatterZipCreator
configurable via a new constructor.
Issue: COMPRESS-504.
* Made an inner class static
Github Pull Request #107.
Issue: COMPRESS-536.
Thanks to Jin Xu.
* added an early exit to a loop in BZip2CompressorOutputStream
Github Pull Request #106.
Issue: COMPRESS-535.
Thanks to Jin Xu.
* Update the class of variable file in TarArchiveEntry from
java.io.File to java.nio.file.Path. Corresponding constructors
and methods are also modified/added.
NOTE: The userName, groupName, userID and groupID will also be
set if they are available. The userName and groupName was not
set previously, and the previous value of UserID:GroupID was
0:0 by default.
Please note this may cause a reproducibility problem.
Github Pull Request #97.
Issue: COMPRESS-404.
Thanks to theobisproject.
* Reuse the record buffer in TarArchiveInputStream.
Issue: COMPRESS-539.
Thanks to Robin Schimpf.
* Add SevenZOutputFile.write(InputStream).
Thanks to Gary Gregory.
* Add SevenZOutputFile.write(Path, OpenOption...).
Thanks to Gary Gregory.
* Add SevenZOutputFile.createArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add ArArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add ArArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add ctor CpioArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add ctor CpioArchiveEntry(short, Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add CpioArchiveEntry.setTime(FileTime).
Thanks to Gary Gregory.
* Add TarArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add ctor TarArchiveEntry(Path, String, LinkOption...).
Thanks to Gary Gregory.
* Add IOUtils.EMPTY_LINK_OPTIONS.
Thanks to Gary Gregory.
* Add Path support to ZipArchiveOutputStream #123.
Thanks to Gary Gregory.
* Some minor improvements.
Github Pull Request #157.
Issue: COMPRESS-561.
Thanks to Arturo Bernal.
* Update from Java 7 to 8.
* Update GitHub actions/checkout from v1 to v2.3.4, #114, #124, #139, #150.
Thanks to Dependabot.
* Update actions/setup-java from v1.4.0 to v2, #125, #133, #141.
Thanks to Dependabot, Gary Gregory.
* Update com.github.luben:zstd-jni from 1.4.4-7 to 1.5.0-2, #118, #159, #173, #174, #203.
Thanks to Dependabot, Gary Gregory.
* Update tests slf4j-api from 1.7.26 to 1.7.30 #117.
Thanks to Dependabot.
* Update maven-pmd-plugin from 3.12.0 to 3.14.0, #115, #154.
Thanks to Dependabot.
* Update maven-bundle-plugin from 3.5.1 to 5.1.2 #116, #180.
Thanks to Dependabot.
* Bump memoryfilesystem from 1.3.0 to 2.1.0 #131.
Thanks to Dependabot.
* Bump actions/cache from v2 to v2.1.6, #164, #200.
Thanks to Dependabot.
* Bump junit from 4.13 to 4.13.2, #143, #167.
Thanks to Dependabot.
* Bump mockito-core from 1.10.19 to 3.11.1, #161, #170, #204.
Thanks to Dependabot.
* Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16 builds).
Thanks to Gary Gregory.
* Bump org.apache.felix:org.apache.felix.framework from 6.0.3 to 7.0.0 (Java 16 builds).
Thanks to Gary Gregory.
* Bump commons.japicmp.version from 0.14.3 to 0.15.3 (Java 16 builds).
Thanks to Gary Gregory.
* Bump commons.javadoc.version from 3.2.0 to 3.3.0.
Thanks to Gary Gregory.
* Update com.github.luben:zstd-jni from 1.4.8-7 to 1.4.9-1 #176.
Thanks to Dependabot.
* Update org.tukaani:xz from 1.8 to 1.9
* Some minor improvements.
Github Pull Request #193.
Issue: COMPRESS-577.
Thanks to Arturo Bernal.
* Java8 improvements.
Github Pull Request #194.
Issue: COMPRESS-578.
Thanks to Arturo Bernal.
* Remove redundant local variable.
Github Pull Request #195.
Issue: COMPRESS-579.
Thanks to Arturo Bernal.
* Remove redundant operation
Github Pull Request #196.
Issue: COMPRESS-580.
Thanks to Arturo Bernal.
-----------------------------------------------------------------------------
Release 1.20
------------
Commons Compress 1.20 like any version of Commons Compress since 1.3
can not be built from sources using Java 14 as Java 14 removes
support for the Pack200 format. We will address this issue with the
next release.
Fixed Bugs
----------
* SevenZFile could throw NullPointerException rather than
IOException for certain archives. In addition it now handles
certain empty archives more gracefully.
Issue: COMPRESS-492.
* Deflate64CompressorInputStream.read would return 0 for some
inputs in violation of the InputStream.read contract.
Issue: COMPRESS-491.
* SeekableInMemoryByteChannel's truncate didn't set position
according to the spec in an edge case.
Issue: COMPRESS-499.
* BZip2CompressorInputStream now incorporates a similar patch as
the one that fixed CVE-2019-12900 in libbzip2.
Commons Compress has not been vulnerable to this CVE as it
would have rejected a file with too many selectors. With this
patch Commons Compress will be able to read certain archives
that would have caused errors in Compress 1.19. Thanks to Joseph Allemandou.
Changes
-------
* Update optional library com.github.luben:zstd-jni from
1.4.0-1 to 1.4.4-7.
Issue: COMPRESS-493.
* Update tests from org.apache.felix:org.apache.felix.framework
6.0.2 to 6.0.3.
* SevenZFile can now recover from a certain corruption that
seems to happen occasionally when split archives are created.
Issue: COMPRESS-497.
Thanks to Stefan Schlott.
* Added random access support to SevenZFile.
Issue: COMPRESS-342.
Thanks to Peter Alfred Lee.
* Added support for split ZIP archives.
Issue: COMPRESS-477.
Thanks to Peter Alfred Lee.
* Added support for reading sparse entries to the TAR package.
Issue: COMPRESS-124.
Thanks to Peter Alfred Lee.