-
Notifications
You must be signed in to change notification settings - Fork 717
Expand file tree
/
Copy pathRELEASE-NOTES.txt
More file actions
2801 lines (2183 loc) · 149 KB
/
RELEASE-NOTES.txt
File metadata and controls
2801 lines (2183 loc) · 149 KB
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 IO 2.22.0 Release Notes
The Apache Commons IO team is pleased to announce the release of Apache Commons IO 2.22.0.
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
This is a feature and maintenance release. Java 8 or later is required.
New features
------------
o Add and use IOUtils.closeQuietlySuppress(Closeable, Throwable) #818. Thanks to Gary Gregory, Piotr P. Karwasz.
Fixed Bugs
----------
o Fix Apache RAT plugin console warnings. Thanks to Gary Gregory.
o ByteArraySeekableByteChannel.position(long) and truncate(long) shouldn't throw an IllegalArgumentException for a new positive position that's too large #817. Thanks to Gary Gregory, Piotr P. Karwasz.
o Fix malformed Javadoc comments. Thanks to Gary Gregory.
o ReadAheadInputStream.close() doesn't always close its filtered input stream. Thanks to Stanislav Fort, Gary Gregory.
Changes
-------
o Bump org.apache.commons:commons-parent from 91 to 96 #816. Thanks to Gary Gregory, Dependabot.
o Bump commons-codec:commons-codec from 1.19.0 to 1.20.0 #812. Thanks to Gary Gregory, Dependabot.
o Bump commons.bytebuddy.version from 1.17.8 to 1.18.4 #814, #820. Thanks to Gary Gregory, Dependabot.
o Bump commons-lang3 from 3.19.0 to 3.20.0. Thanks to Gary Gregory, Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.22.0 Release Notes
The Apache Commons IO team is pleased to announce the release of Apache Commons IO 2.22.0.
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
This is a feature and maintenance release. Java 8 or later is required.
New features
------------
o Add and use IOUtils.closeQuietly(Closeable, Throwable) #818. Thanks to Gary Gregory.
Fixed Bugs
----------
o Fix Apache RAT plugin console warnings. Thanks to Gary Gregory.
o ByteArraySeekableByteChannel.position(long) and truncate(long) shouldn't throw an IllegalArgumentException for a new positive position that's too large #817. Thanks to Gary Gregory, Piotr P. Karwasz.
o Fix malformed Javadoc comments. Thanks to Gary Gregory.
o ReadAheadInputStream.close() doesn't always close its filtered input stream. Thanks to Stanislav Fort, Gary Gregory.
Changes
-------
o Bump org.apache.commons:commons-parent from 91 to 95 #816. Thanks to Gary Gregory, Dependabot.
o Bump commons-codec:commons-codec from 1.19.0 to 1.20.0 #812. Thanks to Gary Gregory, Dependabot.
o Bump commons.bytebuddy.version from 1.17.8 to 1.18.3 #814, #820. Thanks to Gary Gregory, Dependabot.
o Bump commons-lang3 from 3.19.0 to 3.20.0. Thanks to Gary Gregory, Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.21.0 Release Notes
The Apache Commons IO team is pleased to announce the release of Apache Commons IO 2.21.0.
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Version 2.21.0: Java 8 or later is required.
New features
------------
o FileUtils#byteCountToDisplaySize() supports Zettabyte, Yottabyte, Ronnabyte and Quettabyte #763. Thanks to strangelookingnerd, Gary Gregory.
o Add org.apache.commons.io.FileUtils.ONE_RB #763. Thanks to strangelookingnerd, Gary Gregory.
o Add org.apache.commons.io.FileUtils.ONE_QB #763. Thanks to strangelookingnerd, Gary Gregory.
o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], int, int, long). Thanks to Gary Gregory.
o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(byte[], long). Thanks to Gary Gregory.
o Add org.apache.commons.io.output.ProxyOutputStream.writeRepeat(int, long). Thanks to Gary Gregory.
o Add length unit support in FileSystem limits. Thanks to Piotr P. Karwasz.
o Add IOUtils.toByteArray(InputStream, int, int) for safer chunked reading with size validation. Thanks to Piotr P. Karwasz.
o Add org.apache.commons.io.file.PathUtils.getPath(String, String). Thanks to Gary Gregory.
o Add org.apache.commons.io.channels.ByteArraySeekableByteChannel. Thanks to Gary Gregory.
o Add IOIterable.asIterable(). Thanks to Gary Gregory.
o Add NIO channel support to `AbstractStreamBuilder`. Thanks to Piotr P. Karwasz.
o Add CloseShieldChannel to close-shielded NIO Channels #786. Thanks to Piotr P. Karwasz.
o Added IOUtils.checkFromIndexSize as a Java 8 backport of Objects.checkFromIndexSize #790. Thanks to Piotr P. Karwasz.
Fixed Bugs
----------
o When testing on Java 21 and up, enable -XX:+EnableDynamicAgentLoading. Thanks to Gary Gregory.
o When testing on Java 24 and up, don't fail FileUtilsListFilesTest for a different behavior in the JRE. Thanks to Gary Gregory.
o ValidatingObjectInputStream does not validate dynamic proxy interfaces. Thanks to Stanislav Fort, Gary Gregory.
o BoundedInputStream.getRemaining() now reports Long.MAX_VALUE instead of 0 when no limit is set. Thanks to Piotr P. Karwasz.
o BoundedInputStream.available() correctly accounts for the maximum read limit. Thanks to Piotr P. Karwasz.
o Deprecate IOUtils.readFully(InputStream, int) in favor of toByteArray(InputStream, int). Thanks to Gary Gregory, Piotr P. Karwasz.
o IOUtils.toByteArray(InputStream) now throws IOException on byte array overflow. Thanks to Piotr P. Karwasz.
o Javadoc general improvements. Thanks to Gary Gregory, Piotr P. Karwasz.
o IOUtils.toByteArray() now throws EOFException when not enough data is available #796. Thanks to Piotr P. Karwasz.
o Fix IOUtils.skip() usage in concurrent scenarios. Thanks to Piotr P. Karwasz.
o [javadoc] Fix XmlStreamReader Javadoc to indicate the correct class that is built #806. Thanks to J Hawkins.
Changes
-------
o Bump org.apache.commons:commons-parent from 85 to 91 #774, #783, #808. Thanks to Gary Gregory, Dependabot.
o [test] Bump commons-codec:commons-codec from 1.18.0 to 1.19.0. Thanks to Gary Gregory.
o [test] Bump commons.bytebuddy.version from 1.17.6 to 1.17.8 #769. Thanks to Gary Gregory, Dependabot.
o [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0. Thanks to Gary Gregory.
Removed
-------
o Inline private constant field ProxyInputStream.exceptionHandler #780. Thanks to Piotr P. Karwasz.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.20.0 Release Notes
The Apache Commons IO team is pleased to announce the release of Apache Commons IO 2.20.0.
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Version 2.19.1: Java 8 or later is required.
New features
------------
o IO-875: Add org.apache.commons.io.file.CountingPathVisitor.accept(Path, BasicFileAttributes) #743. Thanks to Pierre Baumard, Gary Gregory.
o Add org.apache.commons.io.Charsets.isAlias(Charset, String). Thanks to Gary Gregory.
o Add org.apache.commons.io.Charsets.isUTF8(Charset). Thanks to Gary Gregory.
o Add org.apache.commons.io.Charsets.toCharsetDefault(String, Charset). Thanks to Gary Gregory.
o IO-279: Add Tailer ignoreTouch option #757. Thanks to Joerg Budischewski, Gary Gregory.
Fixed Bugs
----------
o [javadoc] Rename parameter of ProxyOutputStream.write(int) #740. Thanks to Jesse Glick.
o IO-875: CopyDirectoryVisitor ignores fileFilter #743. Thanks to Pierre Baumard, Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.getReader(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.AbstractRandomAccessFileOrigin.getReader(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.ByeArrayOrigin.getReader(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.InputStreamOrigin.getReader(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.getWriter(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.AbstractRandomAccessFileOrigin.getWriter(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o org.apache.commons.io.build.AbstractOrigin.OutputStreamOrigin.getWriter(Charset) now maps a null Charset to the default Charset. Thanks to Gary Gregory.
o FileUtils.readLines(File, Charset) now maps a null Charset to the default Charset #744. Thanks to Ryan Kurtz, Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashCr" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.WindowsLineEndingInputStream, org.apache.commons.io.input.WindowsLineEndingInputStream] At WindowsLineEndingInputStream.java:[line 77]Another occurrence at WindowsLineEndingInputStream.java:[line 81] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashCr" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.WindowsLineEndingInputStream] At WindowsLineEndingInputStream.java:[line 112] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashLf" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.WindowsLineEndingInputStream] At WindowsLineEndingInputStream.java:[line 113] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashLf" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.UnixLineEndingInputStream] At UnixLineEndingInputStream.java:[line 75] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atEos" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.UnixLineEndingInputStream] At UnixLineEndingInputStream.java:[line 120] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashCr" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.UnixLineEndingInputStream] At UnixLineEndingInputStream.java:[line 124] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "atSlashLf" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.UnixLineEndingInputStream] At UnixLineEndingInputStream.java:[line 125] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "closed" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.ProxyInputStream] At ProxyInputStream.java:[line 233] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o Fix SpotBugs [ERROR] Medium: Shared primitive variable "propagateClose" in one thread may not yield the value of the most recent write from another thread [org.apache.commons.io.input.BoundedInputStream] At BoundedInputStream.java:[line 555] AT_STALE_THREAD_WRITE_OF_PRIMITIVE. Thanks to Gary Gregory.
o QueueInputStream reads all but the first byte without waiting. #748. Thanks to maxxedev, Piotr P. Karwasz, Gary Gregory.
o Javadoc fixes and improvements. Thanks to Gary Gregory.
o Avoid NPE in org.apache.commons.io.filefilter.WildcardFilter.accept(File). Thanks to Gary Gregory.
o IO-874: FileUtils.forceDelete can delete a broken symlink again #756. Thanks to Andy Russell, Joerg Budischewski.
o Fix infinite loop in AbstractByteArrayOutputStream. #758. Thanks to Alex Benusovich.
Changes
-------
o Bump commons.bytebuddy.version from 1.17.5 to 1.17.6 #754. Thanks to Dependabot, Gary Gregory.
o Bump org.apache.commons:commons-parent from 81 to 85. Thanks to Gary Gregory.
o Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0 #761. Thanks to Dependabot, Gary Gregory.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.19.0 Release Notes
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Version 2.19.0: Java 8 is required.
New features
------------
o IO-860: Add ThrottledInputStream.Builder.setMaxBytes(long, ChronoUnit). Thanks to Nico Strecker, Gary Gregory.
o Add IOIterable. Thanks to Gary Gregory.
o ReversedLinesFileReader implements IOIterable<String>. Thanks to Gary Gregory.
o Add AbstractByteArrayOutputStream.write(CharSequence, Charset). Thanks to Gary Gregory.
o Add AbstractByteArrayOutputStream.write(byte[]). Thanks to Gary Gregory.
o Add RandomAccessFileOutputStream.getRandomAccessFile(). Thanks to Gary Gregory.
o Add ProxyInputStream.setReference(InputStream), was package-private setIn(InputStream). Thanks to Gary Gregory.
o Add ProxyOutputStream.setReference(OutputStream). Thanks to Gary Gregory.
o Add RandomAccessFileInputStream.copy(long, long, OutputStream). Thanks to Gary Gregory.
o Add ProxyOutputStream.Builder. Thanks to Gary Gregory.
o Add ByteOrderMark.matches(int[]). Thanks to Gary Gregory.
o Add BrokenOutputStream.BrokenOutputStream(Function<String>, Throwable>) and deprecate Supplier<String> constructor. Thanks to Gary Gregory.
o Add IOBooleanSupplier. Thanks to Gary Gregory.
o Add Uncheck.getAsBoolean(IOBooleanSupplier). Thanks to Gary Gregory.
o Add FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory.
o Add FileChannels.contentEquals(ReadableByteChannel, ReadableByteChannel, int). Thanks to Gary Gregory.
o IO-872: Add SimplePathVisitor.AbstractBuilder. Thanks to Gary Gregory.
o IO-872: Add CountingPathVisitor.AbstractBuilder and CountingPathVisitor.Builder. Thanks to Gary Gregory.
o IO-872: Add AccumulatorPathVisitor.Builder and builder(). Thanks to Gary Gregory.
o Add PathUtils.contentEquals(FileSystem, FileSystem). Thanks to Gary Gregory.
Fixed Bugs
----------
o Deprecate constructor Counters.Counters() to be private in 4.0. Thanks to Gary Gregory.
o Deprecate constructor Charsets.Charsets() to be private in 4.0. Thanks to Gary Gregory.
o Pick up maven-antrun-plugin version from parent POM org.apache:apache. Thanks to Gary Gregory.
o Javadoc is missing its Overview page. Thanks to Gary Gregory.
o Remove -nouses directive from maven-bundle-plugin. OSGi package imports now state 'uses' definitions for package imports, this doesn't affect JPMS (from org.apache.commons:commons-parent:80). Thanks to Gary Gregory.
o Deprecate DeferredFileOutputStream.getStream() in favor of getOutputStream(). Thanks to Gary Gregory.
o IO-868: Improve Javadoc for a BoundedInputStream builder() throwing IOException. Thanks to Julian Reschke, Gary Gregory.
o IO-868: Improve Javadoc for all implementations of AbstractOriginSupplier#get(). Thanks to Julian Reschke, Gary Gregory.
o The Consumer to IOUtils.closeQuietly(Closeable, Consumer) now accepts Exception, not just IOException. Thanks to Gary Gregory.
o The Consumer to IOUtils.close(Closeable, IOConsumer) now accepts wrapped Exception, not just IOException. Thanks to Gary Gregory.
o Use Uncheck.getAsBoolean(IOBooleanSupplier) to avoid boxing and unboxing of boolean values. Thanks to Gary Gregory.
o Avoid unnecessary boxing and unboxing of long values in FileUtils.sizeOf(File). Thanks to Gary Gregory.
o Avoid unnecessary boxing and unboxing of int values in UncheckedBufferedReader.read(). Thanks to Gary Gregory.
o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterInputStream.available() and read(). Thanks to Gary Gregory.
o Avoid unnecessary boxing and unboxing of int values in UncheckedFilterReader.read(). Thanks to Gary Gregory.
o FileChannels.contentEquals(FileChannel, FileChannel, int) can return false when comparing a non-blocking channel. Thanks to Gary Gregory.
o Deprecate FileChannels.contentEquals(FileChannel, FileChannel, int) in favor of FileChannels.contentEquals(SeekableByteChannel, SeekableByteChannel, int). Thanks to Gary Gregory.
o Improve performance of IOUtils.contentEquals(InputStream, InputStream) by about 13%. Thanks to Gary Gregory.
o IO-870: PathUtils.copyFileToDirectory() across file systems #728. Thanks to Gary Gregory.
o IO-871: IOUtils.contentEquals is incorrect when InputStream.available under-reports. Thanks to Éamonn McManus, Gary Gregory.
o IO-873: java.lang.ArithmeticException: long overflow java.lang.Math.addExact(Math.java:932) at org.apache.commons.io.file.attribute.FileTimes.ntfsTimeToFileTime(FileTimes.java:164). See also https://issues.apache.org/jira/browse/MDEP-978. Thanks to Gary Gregory.
o IO-873: java.lang.ArithmeticException: long overflow java.lang.Math.addExact(Math.java:932) at org.apache.commons.io.file.attribute.FileTimes.ntfsTimeToDate(long). Thanks to Gary Gregory.
o FileTimes.toNtfsTime(*) methods can overflow result values. Thanks to Gary Gregory.
o Fix Javadoc for ChunkedOutputStream.Builder. Thanks to Gary Gregory.
o General Javadoc improvements. Thanks to Gary Gregory.
o Calling QueueInputStream.QueueInputStream(null) maps to the same kind of default blocking queue as QueueInputStream.Builder.setBlockingQueue(null). Thanks to Gary Gregory.
o CopyDirectoryVisitor creates incorrect file names when copying between different file systems that use different file system separators ("/" versus "\"); fixes PathUtils.copyDirectory(Path, Path, CopyOption...). Thanks to Gary Gregory.
o ThreadUtils.sleep(Duration) should handle the underlying OS time changing. Thanks to zhouchongwen, Gary Gregory.
Changes
-------
o Bump commons.bytebuddy.version from 1.15.10 to 1.17.5 #710, #715, #720, #734, #735. Thanks to Dependabot, Gary Gregory.
o Bump commons-codec:commons-codec from 1.17.1 to 1.18.0. #717. Thanks to Gary Gregory.
o Bump org.apache.commons:commons-parent from 78 to 81. Thanks to Gary Gregory.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.18.0 Release Notes
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Version 2.18.0: Java 8 is required.
New features
------------
o Add @FunctionalInterface to ClassNameMatcher. Thanks to Gary Gregory.
o Add ValidatingObjectInputStream.Builder and ValidatingObjectInputStream.builder(). Thanks to Gary Gregory.
o Add a "Safe Deserialization" section to the User Guide for the site. Thanks to Gary Gregory.
o Add IORandomAccessFile. Thanks to Gary Gregory.
o Add RandomAccessFileMode.io(String). Thanks to Gary Gregory.
o Add FileAlterationObserver.Builder() and deprecate most constructors. Thanks to Gary Gregory.
o Add IOUtils.readLines(CharSequence). Thanks to Gary Gregory.
o Add ValidatingObjectInputStream.ObjectStreamClassPredicate to allow configuration reuse. Thanks to Gary Gregory.
o Add RandomAccessFileMode.accept(Path, IOConsumer<RandomAccessFile>). Thanks to Gary Gregory.
o Add RandomAccessFileMode.apply(Path, IOFunction<RandomAccessFile>, T). Thanks to Gary Gregory.
o Add IOIntConsumer. Thanks to Gary Gregory.
o IO-861: Add ProxyInputStream.AbstractBuilder. Supports setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to AutoCloseInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to BOMInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o IO-861: Add support to BoundedInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o IO-861: Add support to BoundedInputStream for setting a consumer for BoundedInputStream.onMaxLength(long, long). Thanks to Gary Gregory.
o Add support to ChecksumInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to ThrottledInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to ObservableInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to MessageDigestCalculatingInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
o Add support to MessageDigestInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory.
Fixed Bugs
----------
o Clean ups in unit tests. Thanks to Gary Gregory.
o Fix some Javadoc issues. Thanks to Gary Gregory.
o RandomAccessFileMode.toString() is more helpful for debugging when it inherits from Enum. Thanks to Gary Gregory.
o Fix implicit narrowing conversion in compound assignment in UnsynchronizedBufferedReader.skip(long). Thanks to Gary Gregory.
o IO-860: Missing reserved file names in FileSystem.WINDOWS (superscript digits for COM and LPT). Thanks to Stefan Feenstra, Gary Gregory.
o IO-856: FileUtils.listFiles(final File, String[], boolean) can throw NoSuchFileException #697, #699. Thanks to Thomas Hartwig, Gary Gregory.
o IO-859: FileUtils.forceDelete on non-existent file on Windows throws IOException rather than FileNotFoundException. Thanks to JD Dean, Gary Gregory.
o Use Unicode escapes for superscript characters. #701. Thanks to �amonn McManus.
o IO-863: Recent incompatible change to FileUtils.listFiles re extensions, see also IO-856. Thanks to �amonn McManus, Gary Gregory.
o IO-857: Javadoc: Update details for PathUtils "clean" behavior. Thanks to Dmitry, Gary Gregory.
Changes
-------
o Bump org.apache.commons:commons-parent from 74 to 78 #670, #676, #679, #688. Thanks to Gary Gregory.
o Bump commons.bytebuddy.version from 1.15.1 to 1.15.10 #672, #673, #685, #686, #694, #696, #698. Thanks to Gary Gregory.
o Update AbstractStreamBuilder getters from protected to public. Thanks to Gary Gregory.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.17.0 Release Notes
Introduction
------------
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
New features
------------
o Add IOIterator.adapt(Iterable). Thanks to Gary Gregory.
o IO-831: Add getInputStream() for 'https' and 'http' in URIOrigin #630. Thanks to Elliotte Rusty Harold, Thach Le, Gary Gregory.
o Add IOSupplier.getUnchecked(). Thanks to Gary Gregory.
o Add CloseShieldInputStream.systemIn(InputStream). Thanks to Gary Gregory.
o Add NullInputStream.init(). Thanks to Gary Gregory.
o Add AbstractInputStream and refactor duplicate code. Thanks to Gary Gregory.
o Add UnsynchronizedReader. Thanks to Gary Gregory.
o Add UnsynchronizedBufferedReader. Thanks to Gary Gregory.
Fixed Bugs
----------
o IO-858: FileUtilsWaitForTest does not test anything useful.
o Add missing unit tests. Thanks to Gary Gregory.
o FileUtils.lastModifiedFileTime(File) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory.
o PathUtils.deleteOnExit(Path) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory.
o Deprecate LineIterator.nextLine() in favor of next(). Thanks to Gary Gregory.
o Fix PMD UnnecessaryFullyQualifiedName. Thanks to Gary Gregory.
o Add test for CircularByteBuffer clear() #620. Thanks to sullis.
o PathUtils.isPosix(Path, LinkOption...) should return false on null input. Thanks to Gary Gregory.
o AutoCloseInputStream(InputStream) uses ClosedInputStream.INSTANCE when its input is null. Thanks to Gary Gregory.
o Avoid NullPointerException in ProxyInputStream.available() when the underlying input stream is null. Thanks to Gary Gregory.
o Avoid NullPointerException in ProxyInputStream.markSupported() when the underlying input stream is null. Thanks to Gary Gregory.
o Avoid NullPointerException in ProxyInputStream.mark(int) when the underlying input stream is null. Thanks to Gary Gregory.
o BufferedFileChannelInputStream.available() returns 0 before any reads. Thanks to Gary Gregory.
o BufferedFileChannelInputStream.available() should return 0 instead of -1 at the end of the stream. Thanks to Gary Gregory.
o BufferedFileChannelInputStream.available() should return 0 when the stream is closed instead of throwing an exception. Thanks to Gary Gregory.
o CharSequenceInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
o BoundedInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
o CircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
o InfiniteCircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory.
o ChecksumInputStream(InputStream, Checksum, long, long) should fail-fast on null Checksum input. Thanks to Gary Gregory.
o Deprecate NullInputStream.INSTANCE in favor of constructors. Thanks to Gary Gregory.
o NullInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
o MemoryMappedFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
o RandomAccessFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
o ReaderInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory.
o AutoCloseInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory.
o BoundedInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory.
o NullInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory.
o NullInputStream.read(byte[]) should return 0 when the input byte array in length 0. Thanks to Gary Gregory.
o NullInputStream.read(byte[], int, int) should return 0 when the input byte array in length 0 or requested length is 0. Thanks to Gary Gregory.
o MarkShieldInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory.
o Replace deprecated constant FileFileFilter.FILE in Javadoc #657. Thanks to aelaort.
o Pick up exec-maven-plugin version from parent POM. Thanks to Gary Gregory.
Changes
-------
o Bump tests commons.bytebuddy.version from 1.14.13 to 1.15.1 #615, #621, #631, #635, #642, #658, #663, #665. Thanks to Dependabot.
o Bump tests commons-codec:commons-codec from 1.16.1 to 1.17.1 #644. Thanks to Dependabot.
o Bump org.codehaus.mojo:exec-maven-plugin from 3.2.0 to 3.4.1 #632, #652, #659. Thanks to Dependabot.
o Bump org.apache.commons:commons-parent from 69 to 74 #628, #637, #649, #661, #664. Thanks to Dependabot.
o Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #645, #653, #666. Thanks to Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.16.1 Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
Fixed Bugs
----------
o Reimplement FileSystemUtils using NIO. Thanks to Gary Gregory.
o IO-851: FileSystemUtils no longer throws IllegalStateException. Thanks to Sebb, Gary Gregory.
o Avoid possible NullPointerException in FileUtils.listAccumulate(File, IOFileFilter, IOFileFilter, FileVisitOption...). Thanks to Gary Gregory.
o IO-853: BoundedInputStream.reset() not updating count. Thanks to Mike Drob, Gary Gregory.
o ThresholdingOutputStream: a negative threshold should behave like a zero threshold and trigger the event on the first write #609. Thanks to rproserpio, Gary Gregory.
Changes
-------
o Bump commons.bytebuddy.version from 1.14.12 to 1.14.13 #605. Thanks to Gary Gregory.
o Bump org.apache.commons:commons-parent from 67 to 69 #608. Thanks to Gary Gregory, Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.16.1 Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
Fixed Bugs
----------
o Reimplement FileSystemUtils using NIO. Thanks to Gary Gregory.
o IO-851: FileSystemUtils no longer throws IllegalStateException. Thanks to Sebb, Gary Gregory.
o Avoid possible NullPointerException in FileUtils.listAccumulate(File, IOFileFilter, IOFileFilter, FileVisitOption...). Thanks to Gary Gregory.
o IO-853: BoundedInputStream.reset() not updating count. Thanks to Mike Drob, Gary Gregory.
Changes
-------
o Bump commons.bytebuddy.version from 1.14.12 to 1.14.13 #605. Thanks to Gary Gregory.
o Bump org.apache.commons:commons-parent from 67 to 69 #608. Thanks to Gary Gregory, Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO 2.16.0 Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
New features
------------
o Add and use PathUtils.getFileName(Path, Function<Path, R>). Thanks to Gary Gregory.
o Add and use PathUtils.getFileNameString(). Thanks to Gary Gregory.
o Make public Erase.rethrow(Throwable). Thanks to Gary Gregory.
o IO-826: Add BrokenInputStream.BrokenInputStream(Throwable). Thanks to markslater, Gary Gregory.
o IO-826: Add BrokenReader.BrokenReader(Throwable). Thanks to markslater, Gary Gregory.
o IO-826: Add BrokenOutputStream.BrokenOutputStream(Throwable). Thanks to markslater, Gary Gregory.
o IO-826: Add BrokenWriter.BrokenWriter(Throwable). Thanks to markslater, Gary Gregory.
o Add BoundedInputStream.getRemaining(). Thanks to Gary Gregory.
o Add FileTimes.toNtfsTime(long). Thanks to Gary Gregory.
o Add FileTimes.fromUnixTime(long). Thanks to Gary Gregory.
o Add FileTimes.isUnixTime(FileTime). Thanks to Gary Gregory.
o Add FileTimes.isUnixTime(long). Thanks to Gary Gregory.
o Add FileTimes.toUnixTime(FileTime). Thanks to Gary Gregory.
o Add BrokenInputStream.Builder. Thanks to Gary Gregory.
o Add PathUtils.getExtension(Path). Thanks to Gary Gregory.
o Add PathUtils.getBaseName(Path). Thanks to Gary Gregory.
o Add ThrottledInputStream. Thanks to Gary Gregory.
o Add IORunnable.noop(). Thanks to Gary Gregory.
o Add ChecksumInputStream and test #548. Thanks to Gary Gregory.
o Add AbstractStreamBuilder.getReader(). Thanks to Gary Gregory.
o Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory.
o Add ProxyInputStream.unwrap(). Thanks to Gary Gregory.
o Add a running count and builder to BoundedInputStream. Thanks to Gary Gregory.
Fixed Bugs
----------
o Fix and re-enable testSkip_RequiredCharsets #518. Thanks to Elliotte Rusty Harold.
o IO-824: SymbolicLineFileFilter documentation fixes. Thanks to Miguel Munoz, Gary Gregory.
o IO-795: CharSequenceInputStream.reset() only works once #520. Thanks to Miguel Munoz, Gary Gregory.
o IO-795: Finish TODO on CharSequenceInputStream #540. Thanks to Elliotte Rusty Harold.
o IO-825: Add byte array size validation for methods in EndianUtils #521. Thanks to Arthur Chan, Gary Gregory.
o IO-825: Add missing test case CircularByteBufferTest. Thanks to dkdal, Gary Gregory.
o IO-781: Make CharSequenceInputStream.available() more correct in the face of multibyte encodings #525. Thanks to Elliotte Rusty Harold.
o IO-781: Remove unreachable code in AbstractIOFileFilterTest #526. Thanks to Elliotte Rusty Harold.
o IO-808: Rationalize and unify checking for existence of files and directories #529. Thanks to Elliotte Rusty Harold.
o Avoid NullPointerException in IOCase.checkEquals(String, String) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanExecuteFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanExecuteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanReadFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanReadFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanWriteFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in CanWriteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in DirectoryFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in DirectoryFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in EmptyFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in EmptyFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in FileFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in FileFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in HiddenFileFilter.accept(File) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in HiddenFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in IOCase.checkIndexOf(String, int, String) on null input. Thanks to Gary Gregory.
o Avoid NullPointerException in IOCase.checkRegionMatches(String, int, String) on null input. Thanks to Gary Gregory.
o BoundedInputStream.getCount() should not count EOF. Thanks to Gary Gregory.
o Modernize temporary file creation and deletion in DeferredFileOutputStreamTest #535. Thanks to Elliotte Rusty Harold, Gary Gregory.
o Add PathMatcher to IOFileFilter class Javadoc #536. Thanks to Elliotte Rusty Harold.
o IO-781: Fix CharSequenceInputStream coding exception handling #537. Thanks to Marcono1234.
o IO-781: Deprecate int CountingInputStream#getCount() in favor of long CountingInputStream#getByteCount(). Thanks to Marcono1234.
o IO-828: Deprecate CountingInputStream.resetCount() in favor of resetByteCount(). Thanks to Elliotte Rusty Harold, Gary Gregory.
o IO-828: Deprecate CountingInputStream.getMaxLength() in favor of getMaxCount()). Thanks to Gary Gregory.
o IO-818: NullInputStream breaks InputStream's read method contract. Thanks to Gary Gregory.
o Javadoc shouldn't reference 1.x behavior #539. Thanks to Elliotte Rusty Harold.
o IO-829: Don't decode and reencode characters in a potentially different charset in AbstractOrigin.CharSequenceOrigin.getReader(Charset). Thanks to Elliotte Rusty Harold, Gary Gregory.
o Let subclasses of CountingInputStream.afterRead(int) throw IOException. Thanks to Gary Gregory.
o IO-807: Characterization test for broken symlinks when copying directories #547. Thanks to Elliotte Rusty Harold, Gary Gregory.
o ClosedInputStream.read(byte[], int, int) does not always return -1. Thanks to Gary Gregory.
o ClosedOutputStream.write(byte[], int, int) does not always throw IOException. Thanks to Gary Gregory.
o XmlStreamReader can't parse an XML document with a multi-line prolog #550. Thanks to Sylwester Lachiewicz, Gary Gregory.
o XmlStreamReader can't parse XML an document with an external parsed entity prolog. Thanks to Andreas Hubold, Gary Gregory.
o IO-836: Update FileNameUtils Javadoc #554. Thanks to Elliotte Rusty Harold.
o IO-807: Copy symlinks, not the files the symlinks point to #558. Thanks to Jordi Sola, Elliotte Rusty Harold.
o Pickup apache-rat-plugin version from parent POM. Thanks to Gary Gregory.
o Add test for copying a symlink FileUtilsTest#testCopyFile_symLink() #564. Thanks to Elliotte Rusty Harold.
o Make copyFile copy symbolic links by value rather than reference #565. Thanks to Elliotte Rusty Harold.
o Deprecate CopyUtils 0-argument constructor. Thanks to Gary Gregory.
o IO-843: Deprecate EndianUtils 0-argument constructor. Thanks to Gary Gregory, Elliotte Rusty Harold.
o Deprecate FileSystemUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate FilenameUtils 0-argument constructor. Thanks to Gary Gregory.
o Deprecate RandomAccessFiles 0-argument constructor. Thanks to Gary Gregory.
o Clarify and correct EndianUtils and SwappedDataInputStream API doc #566. Thanks to Elliotte Rusty Harold, Gary Gregory.
o Add characterization test for copying a symlinked directory #570. Thanks to Elliotte Rusty Harold.
o RandomAccessFileInputStream.builder().get() now throws ISE instead of NPE. Thanks to Gary Gregory.
o IO-845: Test links to targets outside the source directory #571. Thanks to Elliotte Rusty Harold.
o Focus Javadoc on current version rather than past versions #573, #574. Thanks to Elliotte Rusty Harold.
o IO-469: "Self-suppression not permitted" while using BrokenOutput and BrokenInput streams with try-with-resources. Thanks to Grigory Fadeev, Kristian Rosenvold, Elliotte Rusty Harold.
o IO-405: Handle zero and negative thresholds #587. Thanks to Elliotte Rusty Harold.
o Deprecate CountingInputStream in favor of BoundedInputStream. Thanks to Gary Gregory.
o PathUtils.setPosixPermissions(...) only sets permissions if needed. Thanks to Gary Gregory.
o PathUtils.setReadOnly(...) only sets permissions if needed. Thanks to Gary Gregory.
o PathUtils.deleteFile(..., DeleteOption...) only sets permissions if needed. Thanks to Gary Gregory.
o CleaningPathVisitor only sets permissions if needed. Thanks to Gary Gregory.
o DeletingPathVisitor only sets permissions if needed. Thanks to Gary Gregory.
Changes
-------
o Bump commons.bytebuddy.version from 1.14.10 to 1.14.12 #534, #592. Thanks to Gary Gregory.
o Bump org.apache.commons:commons-parent from 65 to 67. Thanks to Gary Gregory.
o Bump commons-codec:commons-codec from 1.16.0 to 1.16.1 #583. Thanks to Dependabot.
o Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 #593. Thanks to Dependabot.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO
Version 2.15.1
Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
Fixed Bugs
----------
* Fix wrong issue id in change log #503. Thanks to Gregor Dschung.
* Add test for FileChannels.contentEquals() #509. Thanks to Stephan Markwalder, Gary Gregory.
* Fix FileChannels.contentEquals(). Thanks to Gary Gregory.
* Fix some Javadoc issues in LineIterator and IOUtils. Thanks to Gary Gregory.
* Simplify FileAlterationObserver internal processing. Thanks to Gary Gregory.
* Avoid NullPointerException in RegexFileFilter.RegexFileFilter(Pattern). Thanks to Gary Gregory.
* Avoid NullPointerException in RegexFileFilter.accept(Path, BasicFileAttributes). Thanks to Gary Gregory.
* Fix SpotBugs error: Class org.apache.commons.io.filefilter.RegexFileFilter defines non-transient non-serializable instance field pathToString [org.apache.commons.io.filefilter.RegexFileFilter] In RegexFileFilter.java SE_BAD_FIELD. Thanks to Gary Gregory.
* Fix SpotBugs error: Class org.apache.commons.io.filefilter.DelegateFileFilter defines non-transient non-serializable instance field fileFilter [org.apache.commons.io.filefilter.DelegateFileFilter] In DelegateFileFilter.java SE_BAD_FIELD. Thanks to Gary Gregory.
* Fix SpotBugs error: Class org.apache.commons.io.filefilter.DelegateFileFilter defines non-transient non-serializable instance field fileNameFilter [org.apache.commons.io.filefilter.DelegateFileFilter] In DelegateFileFilter.java SE_BAD_FIELD. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.function.IOStream$1.next() cannot throw NoSuchElementException [org.apache.commons.io.function.IOStream$1] At IOStream.java:[line 98] IT_NO_SUCH_ELEMENT. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.monitor.FileAlterationMonitor.getObservers() may expose internal representation by returning FileAlterationMonitor.observers [org.apache.commons.io.monitor.FileAlterationMonitor] At FileAlterationMonitor.java:[line 124] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: Class org.apache.commons.io.monitor.FileAlterationObserver defines non-transient non-serializable instance field fileFilter [org.apache.commons.io.monitor.FileAlterationObserver] In FileAlterationObserver.java SE_BAD_FIELD. Thanks to Gary Gregory.
* Fix SpotBugs error: Class org.apache.commons.io.monitor.FileAlterationObserver defines non-transient non-serializable instance field listeners [org.apache.commons.io.monitor.FileAlterationObserver] In FileAlterationObserver.java SE_BAD_FIELD. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.FileCleaningTracker.getDeleteFailures() may expose internal representation by returning FileCleaningTracker.deleteFailures [org.apache.commons.io.FileCleaningTracker] At FileCleaningTracker.java:[line 218] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.IOExceptionList.getCauseList() may expose internal representation by returning IOExceptionList.causeList [org.apache.commons.io.IOExceptionList] At IOExceptionList.java:[line 118] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.IOExceptionList.getCauseList(Class) may expose internal representation by returning IOExceptionList.causeList [org.apache.commons.io.IOExceptionList] At IOExceptionList.java:[line 129] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.file.AccumulatorPathVisitor.getDirList() may expose internal representation by returning AccumulatorPathVisitor.dirList [org.apache.commons.io.file.AccumulatorPathVisitor] At AccumulatorPathVisitor.java:[line 179] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.file.AccumulatorPathVisitor.getFileList() may expose internal representation by returning AccumulatorPathVisitor.fileList [org.apache.commons.io.file.AccumulatorPathVisitor] At AccumulatorPathVisitor.java:[line 188] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: org.apache.commons.io.input.ObservableInputStream.getObservers() may expose internal representation by returning ObservableInputStream.observers [org.apache.commons.io.input.ObservableInputStream] At ObservableInputStream.java:[line 187] EI_EXPOSE_REP. Thanks to Gary Gregory.
* Fix SpotBugs error: Exception thrown in class org.apache.commons.io.input.UnsynchronizedByteArrayInputStream at new org.apache.commons.io.input.UnsynchronizedByteArrayInputStream(byte[], int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. [org.apache.commons.io.input.UnsynchronizedByteArrayInputStream, org.apache.commons.io.input.UnsynchronizedByteArrayInputStream] At UnsynchronizedByteArrayInputStream.java:[line 202]At UnsynchronizedByteArrayInputStream.java:[line 202] CT_CONSTRUCTOR_THROW. Thanks to Gary Gregory.
* Fix SpotBugs error: Exception thrown in class org.apache.commons.io.input.UnsynchronizedByteArrayInputStream at new org.apache.commons.io.input.UnsynchronizedByteArrayInputStream(byte[], int, int) will leave the constructor. The object under construction remains partially initialized and may be vulnerable to Finalizer attacks. [org.apache.commons.io.input.UnsynchronizedByteArrayInputStream, org.apache.commons.io.input.UnsynchronizedByteArrayInputStream] At UnsynchronizedByteArrayInputStream.java:[line 223]At UnsynchronizedByteArrayInputStream.java:[line 223] CT_CONSTRUCTOR_THROW. Thanks to Gary Gregory.
Changes
-------
* Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to 3.1.1 #512. Thanks to Gary Gregory.
* Bump commons-lang3 from 3.13.0 to 3.14.0. Thanks to Gary Gregory.
* Bump commons.bytebuddy.version from 1.14.9 to 1.14.10 #516. Thanks to Dependabot.
* Bump commons-parent from 64 to 65. Thanks to Dependabot.
Compatibility with 2.6:
Binary compatible: Yes.
Source compatible: Yes.
Semantic compatible: Yes.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO
Version 2.15.0
Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 is required.
New features
------------
* Add org.apache.commons.io.channels.FileChannels. Thanks to Gary Gregory.
* Add RandomAccessFiles#contentEquals(RandomAccessFile, RandomAccessFile). Thanks to Gary Gregory.
* Add RandomAccessFiles#reset(RandomAccessFile). Thanks to Gary Gregory.
* Add PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory.
* Add org.apache.commons.io.StreamIterator. Thanks to Gary Gregory.
* Add MessageDigestInputStream and deprecate MessageDigestCalculatingInputStream. Thanks to Gary Gregory.
Fixed Bugs
----------
* IO-815: XmlStreamReader encoding match RE is too strict. Thanks to Laurence Gonsalves.
* IO-810: Javadoc in FileUtils does not reflect code for thrown exceptions. Thanks to Gregor Dschung, Gary Gregory.
* IO-812: Javadoc should mention closing Streams based on file resources. Thanks to Adam Rauch, Gary Gregory.
* IO-811: In tests, Files.walk() direct and indirect callers fail to close the returned Stream. Thanks to Adam Rauch, Gary Gregory.
* IO-811: FileUtils.listFiles(File, String[], boolean) fails to close its internal Stream. Thanks to Adam Rauch, Gary Gregory.
* IO-811: FileUtils.iterateFiles(File, String[], boolean) fails to close its internal Stream. Thanks to Adam Rauch, Gary Gregory.
* IO-811: StreamIterator fails to close its internal Stream. Thanks to Adam Rauch, Gary Gregory.
* IO-814: Don't throw UncheckedIOException #491. Thanks to Elliotte Rusty Harold, Gary Gregory.
* IO-414: Don't write a BOM on every (or any) line #492. Thanks to Elliotte Rusty Harold, Gary Gregory.
* IO-814: RandomAccessFileMode.create(Path) provides a better NullPointerException message. Thanks to Gary Gregory.
* Improve performance of PathUtils.fileContentEquals(Path, Path, LinkOption[], OpenOption[]) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory.
* Improve performance of PathUtils.fileContentEquals(Path, Path) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory.
* Improve performance of FileUtils.contentEquals(File, File) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory.
* Remove unused test code #494. Thanks to Elliotte Rusty Harold.
* [Javadoc] IOUtils#contentEquals does not throw NullPointerException #496. Thanks to sebbASF.
* Fix CodeQL warnings in UnsynchronizedBufferedInputStream: Implicit narrowing conversion in compound assignment. Thanks to Gary Gregory.
* MessageDigestCalculatingInputStream.MessageDigestMaintainingObserver.MessageDigestMaintainingObserver(MessageDigest) now throws a NullPointerException
if the MessageDigest is null. Thanks to Gary Gregory.
* MessageDigestCalculatingInputStream.MessageDigestCalculatingInputStream(InputStream, MessageDigest) now throws a NullPointerException
if the MessageDigest is null. Thanks to Gary Gregory.
* IO-816: UnsynchronizedBufferedInputStream.read(byte[], int, int) does not use buffer. Thanks to Andreas Loth, Gary Gregory.
Changes
-------
* Bump org.apache.commons:commons-parent from 62 to 64. Thanks to Gary Gregory.
Compatibility with 2.6:
Binary compatible: Yes.
Source compatible: Yes.
Semantic compatible: Yes.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/
Download page: https://commons.apache.org/proper/commons-io/download_io.cgi
Have fun!
-Apache Commons Team
------------------------------------------------------------------------------
Apache Commons IO
Version 2.14.0
Release Notes
Introduction
------------
Commons IO is a package of Java utility classes like java.io.
Classes in this package are considered to be so standard and of such high
reuse as to justify existence in java.io.
The Apache Commons IO library contains utility classes, stream implementations, file filters,
file comparators, endian transformation classes, and much more.
Java 8 required.
New features
------------
* Add DeferredFileOutputStream.getPath(). Thanks to Gary Gregory.
* Add FileCleaningTracker.track(Path, Object[, FileDeleteStrategy]). Thanks to Gary Gregory.
* Add IOUtils.skip[Fully](InputStream, long, Supplier<byte[]>). Thanks to Gary Gregory.
* Add FilesUncheck.find(Path, int, BiPredicate%lt;Path, BasicFileAttributes>, FileVisitOption...) Thanks to Gary Gregory.
* Add IOIntSupplier. Thanks to Gary Gregory.
* Add IOLongSupplier. Thanks to Gary Gregory.
* Add Uncheck.getAsInt(IOIntSupplier [, Supplier<String>]). Thanks to Gary Gregory.
* Add Uncheck.getAsLong(IOLongSupplier [, Supplier<String>]). Thanks to Gary Gregory.
* Add Uncheck.run(IORunnable, Supplier<String>) Thanks to Gary Gregory.
* Add Uncheck.get(IOSupplier, Supplier<String>) Thanks to Gary Gregory.
* IOFileFilter now also extends java.nio.file.PathMatcher. Thanks to Gary Gregory.
* Add PathMatcherFileFilter to adapt java.nio.file.PathMatcher. Thanks to Gary Gregory.
* Add ThresholdingOutputStream.getOutputStream() and deprecate getStream(). Thanks to Gary Gregory.
* Add DeferredFileOutputStream.Builder.setOutputFile(Path). Thanks to Gary Gregory.
* Add DeferredFileOutputStream.Builder.setDirectory(Path). Thanks to Gary Gregory.
* Add AbstractStreamBuilder.setBufferSizeChecker(IntToIntFunction). Thanks to Gary Gregory.
* Add AbstractStreamBuilder.setBufferSizeMax(int). Thanks to Gary Gregory.
Fixed Bugs
----------
* IO-799: ReaderInputStream.read() throws an exception instead of returning -1 when called again after returning -1. Thanks to Jeroen van der Vegt, Gary Gregory.
* IO-804: FileUtils.forceMkdirParent() Javadoc is incorrect. Thanks to Elliotte Rusty Harold, Gary Gregory.
* [StepSecurity] ci: Harden GitHub Actions #461. Thanks to step-security-bot, Gary Gregory.
* MagicNumberFileFilter.accept(Path, BasicFileAttributes) doesn't its byteOffset before reading. Thanks to Gary Gregory.
* Javadoc improvements. Thanks to Gary Gregory.
* Spelling #468. Thanks to Josh Soref, Gary Gregory.
* Use assertThrows #475. Thanks to Jakub Kupczyk.
Changes
-------
* Bump jimfs from 1.2 to 1.3.0 #465 (tests). Thanks to Dependabot.
* Bump commons-parent from 58 to 62. Thanks to Gary Gregory.
* Bump commons-lang3 from 3.12 to 3.13.0. Thanks to Gary Gregory.
Compatibility with 2.6:
Binary compatible: Yes.
Source compatible: Yes.
Semantic compatible: Yes.
Commons IO 2.7 and up requires Java 8 or above.
Commons IO 2.6 requires Java 7 or above.
Commons IO 2.3 through 2.5 requires Java 6 or above.
Commons IO 2.2 requires Java 5 or above.
Commons IO 1.4 requires Java 1.3 or above.
Historical list of changes: https://commons.apache.org/proper/commons-io/changes-report.html
For complete information on Apache Commons IO, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Commons IO website:
https://commons.apache.org/proper/commons-io/