Apache Commons IO Release Notes
Release History
Version |
Date |
Description |
2.18.0 |
2024-11-16 |
Version 2.18.0: Java 8 is required. |
2.17.0 |
2024-09-15 |
Version 2.17.0: Java 8 is required. |
2.16.1 |
2024-04-04 |
Java 8 is required. |
2.16.0 |
2024-03-25 |
Java 8 is required. |
2.15.1 |
2023-11-24 |
Java 8 is required. |
2.15.0 |
2023-10-21 |
Java 8 is required. |
2.14.0 |
2023-09-24 |
Java 8 is required. |
2.13.0 |
2023-06-03 |
Java 8 is required. |
2.12.0 |
2023-05-13 |
Java 8 is required. |
2.11.0 |
2021-07-09 |
Java 8 is required. |
2.10.0 |
2021-06-10 |
Java 8 is required. |
2.9.0 |
2021-05-22 |
Java 8 is required. |
2.8.0 |
2020-09-05 |
Java 8 is required. |
2.7 |
2020-05-24 |
Java 8 is required. |
2.6 |
2017-10-15 |
Java 7 required, Java 9 supported. |
2.5 |
2016-04-22 |
New features and bug fixes. |
2.4 |
2012-06-12 |
New features and bug fixes. |
2.3 |
2012-April-10 |
New features and bug fixes. |
2.2 |
2012-March-26 |
New features and bug fixes. |
2.1 |
2011-Sep-28 |
New features and bug fixes. |
2.0.1 |
2010-Dec-26 |
|
2.0 |
2010-Oct-18 |
|
1.4 |
2008-Jan-21 |
|
1.3.2 |
2007-Jul-02 |
Bug fixes. |
Release 2.18.0 – 2024-11-16
Type |
Changes |
By |
|
Clean ups in unit tests. Thanks to Gary Gregory. |
ggregory |
|
Fix some Javadoc issues. Thanks to Gary Gregory. |
ggregory |
|
RandomAccessFileMode.toString() is more helpful for debugging when it inherits from Enum. Thanks to Gary Gregory. |
ggregory |
|
Fix implicit narrowing conversion in compound assignment in UnsynchronizedBufferedReader.skip(long). Thanks to Gary Gregory. |
ggregory |
|
Missing reserved file names in FileSystem.WINDOWS (superscript digits for COM and LPT). Fixes IO-860. Thanks to Stefan Feenstra, Gary Gregory. |
ggregory |
|
FileUtils.listFiles(final File, String[], boolean) can throw NoSuchFileException #697, #699. Fixes IO-856. Thanks to Thomas Hartwig, Gary Gregory. |
ggregory |
|
FileUtils.forceDelete on non-existent file on Windows throws IOException rather than FileNotFoundException. Fixes IO-859. Thanks to JD Dean, Gary Gregory. |
ggregory |
|
Use Unicode escapes for superscript characters. #701. Thanks to Éamonn McManus. |
ggregory |
|
Recent incompatible change to FileUtils.listFiles re extensions, see also IO-856. Fixes IO-863. Thanks to Éamonn McManus, Gary Gregory. |
ggregory |
|
Javadoc: Update details for PathUtils "clean" behavior. Fixes IO-857. Thanks to Dmitry, Gary Gregory. |
ggregory |
|
Add @FunctionalInterface to ClassNameMatcher. Thanks to Gary Gregory. |
ggregory |
|
Add ValidatingObjectInputStream.Builder and ValidatingObjectInputStream.builder(). Thanks to Gary Gregory. |
ggregory |
|
Add a "Safe Deserialization" section to the User Guide for the site. Thanks to Gary Gregory. |
ggregory |
|
Add IORandomAccessFile. Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFileMode.io(String). Thanks to Gary Gregory. |
ggregory |
|
Add FileAlterationObserver.Builder() and deprecate most constructors. Thanks to Gary Gregory. |
ggregory |
|
Add IOUtils.readLines(CharSequence). Thanks to Gary Gregory. |
ggregory |
|
Add ValidatingObjectInputStream.ObjectStreamClassPredicate to allow configuration reuse. Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFileMode.accept(Path, IOConsumer<RandomAccessFile>). Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFileMode.apply(Path, IOFunction<RandomAccessFile>, T). Thanks to Gary Gregory. |
ggregory |
|
Add IOIntConsumer. Thanks to Gary Gregory. |
ggregory |
|
Add ProxyInputStream.AbstractBuilder. Supports setting a consumer for ProxyInputStream.afterRead(int). Fixes IO-861. Thanks to Gary Gregory. |
ggregory |
|
Add support to AutoCloseInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to BOMInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to BoundedInputStream for setting a consumer for ProxyInputStream.afterRead(int). Fixes IO-861. Thanks to Gary Gregory. |
ggregory |
|
Add support to BoundedInputStream for setting a consumer for BoundedInputStream.onMaxLength(long, long). Fixes IO-861. Thanks to Gary Gregory. |
ggregory |
|
Add support to ChecksumInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to ThrottledInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to ObservableInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to MessageDigestCalculatingInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Add support to MessageDigestInputStream for setting a consumer for ProxyInputStream.afterRead(int). Thanks to Gary Gregory. |
ggregory |
|
Bump org.apache.commons:commons-parent from 74 to 78 #670, #676, #679, #688. Thanks to Gary Gregory. |
ggregory |
|
Bump commons.bytebuddy.version from 1.15.1 to 1.15.10 #672, #673, #685, #686, #694, #696, #698. Thanks to Gary Gregory. |
ggregory |
|
Update AbstractStreamBuilder getters from protected to public. Thanks to Gary Gregory. |
ggregory |
Release 2.17.0 – 2024-09-15
Type |
Changes |
By |
|
Add IOIterator.adapt(Iterable). Thanks to Gary Gregory. |
ggregory |
|
Add getInputStream() for 'https' and 'http' in URIOrigin #630. Fixes IO-831. Thanks to Elliotte Rusty Harold, Thach Le, Gary Gregory. |
ggregory |
|
Add IOSupplier.getUnchecked(). Thanks to Gary Gregory. |
ggregory |
|
Add CloseShieldInputStream.systemIn(InputStream). Thanks to Gary Gregory. |
ggregory |
|
Add NullInputStream.init(). Thanks to Gary Gregory. |
ggregory |
|
Add AbstractInputStream and refactor duplicate code. Thanks to Gary Gregory. |
ggregory |
|
Add UnsynchronizedReader. Thanks to Gary Gregory. |
ggregory |
|
Add UnsynchronizedBufferedReader. Thanks to Gary Gregory. |
ggregory |
|
FileUtilsWaitForTest does not test anything useful. Fixes IO-858. |
sebb |
|
Add missing unit tests. Thanks to Gary Gregory. |
ggregory |
|
FileUtils.lastModifiedFileTime(File) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.deleteOnExit(Path) calls Objects.requireNonNull() on the wrong object. Thanks to Gary Gregory. |
ggregory |
|
Deprecate LineIterator.nextLine() in favor of next(). Thanks to Gary Gregory. |
ggregory |
|
Fix PMD UnnecessaryFullyQualifiedName. Thanks to Gary Gregory. |
ggregory |
|
Add test for CircularByteBuffer clear() #620. Thanks to sullis. |
ggregory |
|
PathUtils.isPosix(Path, LinkOption...) should return false on null input. Thanks to Gary Gregory. |
ggregory |
|
AutoCloseInputStream(InputStream) uses ClosedInputStream.INSTANCE when its input is null. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in ProxyInputStream.available() when the underlying input stream is null. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in ProxyInputStream.markSupported() when the underlying input stream is null. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in ProxyInputStream.mark(int) when the underlying input stream is null. Thanks to Gary Gregory. |
ggregory |
|
BufferedFileChannelInputStream.available() returns 0 before any reads. Thanks to Gary Gregory. |
ggregory |
|
BufferedFileChannelInputStream.available() should return 0 instead of -1 at the end of the stream. Thanks to Gary Gregory. |
ggregory |
|
BufferedFileChannelInputStream.available() should return 0 when the stream is closed instead of throwing an exception. Thanks to Gary Gregory. |
ggregory |
|
CharSequenceInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
BoundedInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
CircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
InfiniteCircularInputStream.available() should return 0 when the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
ChecksumInputStream(InputStream, Checksum, long, long) should fail-fast on null Checksum input. Thanks to Gary Gregory. |
ggregory |
|
Deprecate NullInputStream.INSTANCE in favor of constructors. Thanks to Gary Gregory. |
ggregory |
|
NullInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
MemoryMappedFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
RandomAccessFileInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
ReaderInputStream.available() should return 0 after the stream is closed. Thanks to Gary Gregory. |
ggregory |
|
AutoCloseInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory. |
ggregory |
|
BoundedInputStream does not call handleIOException() on close() when the proxied stream throws an IOException. Thanks to Gary Gregory. |
ggregory |
|
NullInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory. |
ggregory |
|
NullInputStream.read(byte[]) should return 0 when the input byte array in length 0. Thanks to Gary Gregory. |
ggregory |
|
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. |
ggregory |
|
MarkShieldInputStream.read(*) should throw IOException when it is closed. Thanks to Gary Gregory. |
ggregory |
|
Replace deprecated constant FileFileFilter.FILE in Javadoc #657. Thanks to aelaort. |
ggregory |
|
Pick up exec-maven-plugin version from parent POM. Thanks to Gary Gregory. |
ggregory |
|
Bump tests commons.bytebuddy.version from 1.14.13 to 1.15.1 #615, #621, #631, #635, #642, #658, #663, #665. Thanks to Dependabot. |
ggregory |
|
Bump tests commons-codec:commons-codec from 1.16.1 to 1.17.1 #644. Thanks to Dependabot. |
ggregory |
|
Bump org.codehaus.mojo:exec-maven-plugin from 3.2.0 to 3.4.1 #632, #652, #659. Thanks to Dependabot. |
ggregory |
|
Bump org.apache.commons:commons-parent from 69 to 74 #628, #637, #649, #661, #664. Thanks to Dependabot. |
ggregory |
|
Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #645, #653, #666. Thanks to Dependabot. |
ggregory |
Release 2.16.1 – 2024-04-04
Type |
Changes |
By |
|
Reimplement FileSystemUtils using NIO. Thanks to Gary Gregory. |
ggregory |
|
FileSystemUtils no longer throws IllegalStateException. Fixes IO-851. Thanks to Sebb, Gary Gregory. |
ggregory |
|
Avoid possible NullPointerException in FileUtils.listAccumulate(File, IOFileFilter, IOFileFilter, FileVisitOption...). Thanks to Gary Gregory. |
ggregory |
|
BoundedInputStream.reset() not updating count. Fixes IO-853. Thanks to Mike Drob, Gary Gregory. |
ggregory |
|
ThresholdingOutputStream: a negative threshold should behave like a zero threshold and trigger the event on the first write #609. Fixes IO-854. Thanks to rproserpio, Bill Orpet, Gary Gregory. |
ggregory |
|
Bump commons.bytebuddy.version from 1.14.12 to 1.14.13 #605. Thanks to Gary Gregory. |
ggregory |
|
Bump org.apache.commons:commons-parent from 67 to 69 #608. Thanks to Gary Gregory, Dependabot. |
ggregory |
Release 2.16.0 – 2024-03-25
Type |
Changes |
By |
|
Fix and re-enable testSkip_RequiredCharsets #518. Thanks to Elliotte Rusty Harold. |
ggregory |
|
SymbolicLineFileFilter documentation fixes. Fixes IO-824. Thanks to Miguel Munoz, Gary Gregory. |
ggregory |
|
CharSequenceInputStream.reset() only works once #520. Fixes IO-795. Thanks to Miguel Munoz, Gary Gregory. |
ggregory |
|
Finish TODO on CharSequenceInputStream #540. Fixes IO-795. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Add byte array size validation for methods in EndianUtils #521. Fixes IO-825. Thanks to Arthur Chan, Gary Gregory. |
ggregory |
|
Add missing test case CircularByteBufferTest. Fixes IO-825. Thanks to dkdal, Gary Gregory. |
ggregory |
|
Make CharSequenceInputStream.available() more correct in the face of multibyte encodings #525. Fixes IO-781. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Remove unreachable code in AbstractIOFileFilterTest #526. Fixes IO-781. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Rationalize and unify checking for existence of files and directories #529. Fixes IO-808. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Avoid NullPointerException in IOCase.checkEquals(String, String) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanExecuteFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanExecuteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanReadFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanReadFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanWriteFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in CanWriteFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in DirectoryFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in DirectoryFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in EmptyFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in EmptyFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in FileFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in FileFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in HiddenFileFilter.accept(File) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in HiddenFileFilter.accept(Path, BasicFileAttributes) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in IOCase.checkIndexOf(String, int, String) on null input. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in IOCase.checkRegionMatches(String, int, String) on null input. Thanks to Gary Gregory. |
ggregory |
|
BoundedInputStream.getCount() should not count EOF. Thanks to Gary Gregory. |
ggregory |
|
Modernize temporary file creation and deletion in DeferredFileOutputStreamTest #535. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
Add PathMatcher to IOFileFilter class Javadoc #536. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Fix CharSequenceInputStream coding exception handling #537. Fixes IO-781. Thanks to Marcono1234. |
ggregory |
|
Deprecate int CountingInputStream#getCount() in favor of long CountingInputStream#getByteCount(). Fixes IO-781. Thanks to Marcono1234. |
ggregory |
|
Deprecate CountingInputStream.resetCount() in favor of resetByteCount(). Fixes IO-828. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
Deprecate CountingInputStream.getMaxLength() in favor of getMaxCount()). Fixes IO-828. Thanks to Gary Gregory. |
ggregory |
|
NullInputStream breaks InputStream's read method contract. Fixes IO-818. Thanks to Gary Gregory. |
ggregory |
|
Javadoc shouldn't reference 1.x behavior #539. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Don't decode and reencode characters in a potentially different charset in AbstractOrigin.CharSequenceOrigin.getReader(Charset). Fixes IO-829. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
Let subclasses of CountingInputStream.afterRead(int) throw IOException. Thanks to Gary Gregory. |
ggregory |
|
Characterization test for broken symlinks when copying directories #547. Fixes IO-807. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
ClosedInputStream.read(byte[], int, int) does not always return -1. Thanks to Gary Gregory. |
ggregory |
|
ClosedOutputStream.write(byte[], int, int) does not always throw IOException. Thanks to Gary Gregory. |
ggregory |
|
XmlStreamReader can't parse an XML document with a multi-line prolog #550. Thanks to Sylwester Lachiewicz, Gary Gregory. |
ggregory |
|
XmlStreamReader can't parse XML an document with an external parsed entity prolog. Thanks to Andreas Hubold, Gary Gregory. |
ggregory |
|
Update FileNameUtils Javadoc #554. Fixes IO-836. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Copy symlinks, not the files the symlinks point to #558. Fixes IO-807. Thanks to Jordi Sola, Elliotte Rusty Harold. |
ggregory |
|
Pickup apache-rat-plugin version from parent POM. Thanks to Gary Gregory. |
ggregory |
|
Add test for copying a symlink FileUtilsTest#testCopyFile_symLink() #564. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Make copyFile copy symbolic links by value rather than reference #565. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Deprecate CopyUtils 0-argument constructor. Thanks to Gary Gregory. |
ggregory |
|
Deprecate EndianUtils 0-argument constructor. Fixes IO-843. Thanks to Gary Gregory, Elliotte Rusty Harold. |
ggregory |
|
Deprecate FileSystemUtils 0-argument constructor. Thanks to Gary Gregory. |
ggregory |
|
Deprecate FilenameUtils 0-argument constructor. Thanks to Gary Gregory. |
ggregory |
|
Deprecate RandomAccessFiles 0-argument constructor. Thanks to Gary Gregory. |
ggregory |
|
Clarify and correct EndianUtils and SwappedDataInputStream API doc #566. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
Add characterization test for copying a symlinked directory #570. Thanks to Elliotte Rusty Harold. |
ggregory |
|
RandomAccessFileInputStream.builder().get() now throws ISE instead of NPE. Thanks to Gary Gregory. |
ggregory |
|
Test links to targets outside the source directory #571. Fixes IO-845. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Focus Javadoc on current version rather than past versions #573, #574. Thanks to Elliotte Rusty Harold. |
ggregory |
|
"Self-suppression not permitted" while using BrokenOutput and BrokenInput streams with try-with-resources. Fixes IO-469. Thanks to Grigory Fadeev, Kristian Rosenvold, Elliotte Rusty Harold. |
ggregory |
|
Handle zero and negative thresholds #587. Fixes IO-405. Thanks to Elliotte Rusty Harold. |
ggregory |
|
Deprecate CountingInputStream in favor of BoundedInputStream. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.setPosixPermissions(...) only sets permissions if needed. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.setReadOnly(...) only sets permissions if needed. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.deleteFile(..., DeleteOption...) only sets permissions if needed. Thanks to Gary Gregory. |
ggregory |
|
CleaningPathVisitor only sets permissions if needed. Thanks to Gary Gregory. |
ggregory |
|
DeletingPathVisitor only sets permissions if needed. Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.getFileName(Path, Function<Path, R>). Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.getFileNameString(). Thanks to Gary Gregory. |
ggregory |
|
Make public Erase.rethrow(Throwable). Thanks to Gary Gregory. |
ggregory |
|
Add BrokenInputStream.BrokenInputStream(Throwable). Fixes IO-826. Thanks to markslater, Gary Gregory. |
ggregory |
|
Add BrokenReader.BrokenReader(Throwable). Fixes IO-826. Thanks to markslater, Gary Gregory. |
ggregory |
|
Add BrokenOutputStream.BrokenOutputStream(Throwable). Fixes IO-826. Thanks to markslater, Gary Gregory. |
ggregory |
|
Add BrokenWriter.BrokenWriter(Throwable). Fixes IO-826. Thanks to markslater, Gary Gregory. |
ggregory |
|
Add BoundedInputStream.getRemaining(). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes.toNtfsTime(long). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes.fromUnixTime(long). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes.isUnixTime(FileTime). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes.isUnixTime(long). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes.toUnixTime(FileTime). Thanks to Gary Gregory. |
ggregory |
|
Add BrokenInputStream.Builder. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.getExtension(Path). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.getBaseName(Path). Thanks to Gary Gregory. |
ggregory |
|
Add ThrottledInputStream. Thanks to Gary Gregory. |
ggregory |
|
Add IORunnable.noop(). Thanks to Gary Gregory. |
ggregory |
|
Add ChecksumInputStream and test #548. Thanks to Gary Gregory. |
ggregory |
|
Add AbstractStreamBuilder.getReader(). Thanks to Gary Gregory. |
ggregory |
|
Add Maven property project.build.outputTimestamp for build reproducibility. Thanks to Gary Gregory. |
ggregory |
|
Add ProxyInputStream.unwrap(). Thanks to Gary Gregory. |
ggregory |
|
Add a running count and builder to BoundedInputStream. Thanks to Gary Gregory. |
ggregory |
|
Bump commons.bytebuddy.version from 1.14.10 to 1.14.12 #534, #592. Thanks to Gary Gregory. |
ggregory |
|
Bump org.apache.commons:commons-parent from 65 to 67. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-codec:commons-codec from 1.16.0 to 1.16.1 #583. Thanks to Dependabot. |
ggregory |
|
Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0 #593. Thanks to Dependabot. |
ggregory |
Release 2.15.1 – 2023-11-24
Type |
Changes |
By |
|
Fix wrong issue id in change log #503. Thanks to Gregor Dschung. |
sebb |
|
Add test for FileChannels.contentEquals() #509. Thanks to Stephan Markwalder, Gary Gregory. |
ggregory |
|
Fix FileChannels.contentEquals(). Thanks to Gary Gregory. |
ggregory |
|
Fix some Javadoc issues in LineIterator and IOUtils. Thanks to Gary Gregory. |
ggregory |
|
Simplify FileAlterationObserver internal processing. Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in RegexFileFilter.RegexFileFilter(Pattern). Thanks to Gary Gregory. |
ggregory |
|
Avoid NullPointerException in RegexFileFilter.accept(Path, BasicFileAttributes). Thanks to Gary Gregory. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
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. |
ggregory |
|
Bump org.codehaus.mojo:exec-maven-plugin from 3.1.0 to 3.1.1 #512. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-lang3 from 3.13.0 to 3.14.0. Thanks to Gary Gregory. |
ggregory |
|
Bump commons.bytebuddy.version from 1.14.9 to 1.14.10 #516. Thanks to Dependabot. |
ggregory |
|
Bump commons-parent from 64 to 65. Thanks to Dependabot. |
ggregory |
Release 2.15.0 – 2023-10-21
Type |
Changes |
By |
|
XmlStreamReader encoding match RE is too strict. Fixes IO-815. Thanks to Laurence Gonsalves. |
sebb |
|
Javadoc in FileUtils does not reflect code for thrown exceptions. Fixes IO-810. Thanks to Gregor Dschung, Gary Gregory. |
ggregory |
|
Javadoc should mention closing Streams based on file resources. Fixes IO-812. Thanks to Adam Rauch, Gary Gregory. |
ggregory |
|
In tests, Files.walk() direct and indirect callers fail to close the returned Stream. Fixes IO-811. Thanks to Adam Rauch, Gary Gregory. |
ggregory |
|
FileUtils.listFiles(File, String[], boolean) fails to close its internal Stream. Fixes IO-811. Thanks to Adam Rauch, Gary Gregory. |
ggregory |
|
FileUtils.iterateFiles(File, String[], boolean) fails to close its internal Stream. Fixes IO-811. Thanks to Adam Rauch, Gary Gregory. |
ggregory |
|
StreamIterator fails to close its internal Stream. Fixes IO-811. Thanks to Adam Rauch, Gary Gregory. |
ggregory |
|
Don't throw UncheckedIOException #491. Fixes IO-814. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
Don't write a BOM on every (or any) line #492. Fixes IO-414. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
RandomAccessFileMode.create(Path) provides a better NullPointerException message. Fixes IO-814. Thanks to Gary Gregory. |
ggregory |
|
Improve performance of PathUtils.fileContentEquals(Path, Path, LinkOption[], OpenOption[]) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory. |
ggregory |
|
Improve performance of PathUtils.fileContentEquals(Path, Path) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory. |
ggregory |
|
Improve performance of FileUtils.contentEquals(File, File) by about 60%, see PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory. |
ggregory |
|
Remove unused test code #494. Thanks to Elliotte Rusty Harold. |
ggregory |
|
[Javadoc] IOUtils#contentEquals does not throw NullPointerException #496. Thanks to sebbASF. |
ggregory |
|
Fix CodeQL warnings in UnsynchronizedBufferedInputStream: Implicit narrowing conversion in compound assignment. Thanks to Gary Gregory. |
ggregory |
|
MessageDigestCalculatingInputStream.MessageDigestMaintainingObserver.MessageDigestMaintainingObserver(MessageDigest) now throws a NullPointerException
if the MessageDigest is null. Thanks to Gary Gregory. |
ggregory |
|
MessageDigestCalculatingInputStream.MessageDigestCalculatingInputStream(InputStream, MessageDigest) now throws a NullPointerException
if the MessageDigest is null. Thanks to Gary Gregory. |
ggregory |
|
UnsynchronizedBufferedInputStream.read(byte[], int, int) does not use buffer. Fixes IO-816. Thanks to Andreas Loth, Gary Gregory. |
ggregory |
|
Pick up Maven Moditect plugin version from parent POM. Thanks to Gary Gregory. |
ggregory |
|
2.15.0 breaks backwards compatibility in PathUtils.fileContentEquals for the Zip file system. Fixes IO-821. Thanks to Frédéric Hannes, Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.channels.FileChannels. Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFiles#contentEquals(RandomAccessFile, RandomAccessFile). Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFiles#reset(RandomAccessFile). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtilsContentEqualsBenchmark. Thanks to Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.StreamIterator. Thanks to Gary Gregory. |
ggregory |
|
Add MessageDigestInputStream and deprecate MessageDigestCalculatingInputStream. Thanks to Gary Gregory. |
ggregory |
|
Bump org.apache.commons:commons-parent from 62 to 64. Thanks to Gary Gregory. |
ggregory |
Release 2.14.0 – 2023-09-24
Type |
Changes |
By |
|
ReaderInputStream.read() throws an exception instead of returning -1 when called again after returning -1. Fixes IO-799. Thanks to Jeroen van der Vegt, Gary Gregory. |
ggregory |
|
FileUtils.forceMkdirParent() Javadoc is incorrect. Fixes IO-804. Thanks to Elliotte Rusty Harold, Gary Gregory. |
ggregory |
|
[StepSecurity] ci: Harden GitHub Actions #461. Thanks to step-security-bot, Gary Gregory. |
ggregory |
|
MagicNumberFileFilter.accept(Path, BasicFileAttributes) doesn't set its byteOffset before reading. Thanks to Gary Gregory. |
ggregory |
|
Javadoc improvements. Thanks to Gary Gregory. |
ggregory |
|
Spelling #468. Thanks to Josh Soref, Gary Gregory. |
ggregory |
|
Use assertThrows #475. Thanks to Jakub Kupczyk. |
ggregory |
|
Add DeferredFileOutputStream.getPath(). Thanks to Gary Gregory. |
ggregory |
|
Add FileCleaningTracker.track(Path, Object[, FileDeleteStrategy]). Thanks to Gary Gregory. |
ggregory |
|
Add IOUtils.skip[Fully](InputStream, long, Supplier<byte[]>). Thanks to Gary Gregory. |
ggregory |
|
Add FilesUncheck.find(Path, int, BiPredicate%lt;Path, BasicFileAttributes>, FileVisitOption...) Thanks to Gary Gregory. |
ggregory |
|
Add IOIntSupplier. Thanks to Gary Gregory. |
ggregory |
|
Add IOLongSupplier. Thanks to Gary Gregory. |
ggregory |
|
Add Uncheck.getAsInt(IOIntSupplier [, Supplier<String>]). Thanks to Gary Gregory. |
ggregory |
|
Add Uncheck.getAsLong(IOLongSupplier [, Supplier<String>]). Thanks to Gary Gregory. |
ggregory |
|
Add Uncheck.run(IORunnable, Supplier<String>) Thanks to Gary Gregory. |
ggregory |
|
Add Uncheck.get(IOSupplier, Supplier<String>) Thanks to Gary Gregory. |
ggregory |
|
IOFileFilter now also extends java.nio.file.PathMatcher. Thanks to Gary Gregory. |
ggregory |
|
Add PathMatcherFileFilter to adapt java.nio.file.PathMatcher. Thanks to Gary Gregory. |
ggregory |
|
Add ThresholdingOutputStream.getOutputStream() and deprecate getStream(). Thanks to Gary Gregory. |
ggregory |
|
Add DeferredFileOutputStream.Builder.setOutputFile(Path). Thanks to Gary Gregory. |
ggregory |
|
Add DeferredFileOutputStream.Builder.setDirectory(Path). Thanks to Gary Gregory. |
ggregory |
|
Add AbstractStreamBuilder.setBufferSizeChecker(IntToIntFunction). Thanks to Gary Gregory. |
ggregory |
|
Add AbstractStreamBuilder.setBufferSizeMax(int). Thanks to Gary Gregory. |
ggregory |
|
Bump jimfs from 1.2 to 1.3.0 #465 (tests). Thanks to Dependabot. |
ggregory |
|
Bump commons-parent from 58 to 62. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-lang3 from 3.12 to 3.13.0. Thanks to Gary Gregory. |
ggregory |
Release 2.13.0 – 2023-06-03
Type |
Changes |
By |
|
Regression in FileUtils.touch() - no longer creates parent directories. Fixes IO-791. Thanks to Chad Wilson, Gary Gregory. |
ggregory |
|
ByteArrayOrigin should be able convert a byte[] to a ByteArrayInputStream. Thanks to Gary Gregory. |
ggregory |
|
AbstractOriginSupplier.checkOrigin() now throws IllegalStateException instead of NullPointerException. Thanks to Gary Gregory. |
ggregory |
|
FileAlreadyExistsException in PathUtils.createParentDirectories(Path, LinkOption, FileAttribute...). Fixes IO-796. Thanks to Giacomo Boccardo, Gary Gregory. |
ggregory |
|
Only read the relevant portion of a file in AbstractOrigin.FileOrigin.getByteArray(long, int). Thanks to Gary Gregory. |
ggregory |
|
Only read the relevant portion of a file in AbstractOrigin.PathOrigin.getByteArray(long, int). Thanks to Gary Gregory. |
ggregory |
|
DeferredFileOutputStream throws exception when system temp dir is a symlink. Fixes IO-798. Thanks to Shai Shapira, Gary Gregory. |
ggregory |
|
ReaderInputStream.Builder.setCharsetEncoder(null) should reset to a default object, not throw an NPE. Thanks to Gary Gregory. |
ggregory |
|
ReaderInputStream.Builder.setCharset(null) should reset to a default object, not throw an NPE. Thanks to Gary Gregory. |
ggregory |
|
Fix back-incompatible change for PathUtils.deleteDirectory(): throw NoSuchFileException instead of IllegalArgumentException #459. Fixes IO-800. Thanks to Jan Høydahl, Gary Gregory. |
ggregory |
|
Deprecation documentation gives incorrect alternative. Fixes IO-801. Thanks to James Howe, Gary Gregory. |
ggregory |
|
Add CharSequenceInputStream.Builder. Thanks to Gary Gregory. |
ggregory |
|
Add ChunkedOutputStream.Builder. Thanks to Gary Gregory. |
ggregory |
|
Add AbstractStreamBuilder.setOpenOptions(OpenOption...). Thanks to Gary Gregory. |
ggregory |
|
Add some missing conversions to AbstractOrigin subclasses. Thanks to Gary Gregory. |
ggregory |
|
Add AbstractOrigin.getByteArray(long, int). Thanks to Gary Gregory. |
ggregory |
|
Add and use RandomAccessFiles. Thanks to Gary Gregory. |
ggregory |
|
Add AbstractOrigin.size(). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.EMPTY_FILE_ATTRIBUTE_ARRAY. Thanks to Gary Gregory. |
ggregory |
|
Add CharSequenceInputStream.Builder.setCharsetEncoder(CharsetEncoder). Thanks to Gary Gregory. |
ggregory |
|
Add CharsetEncoders.toCharsetEncoder(CharsetEncoder, Supplier<CharsetEncoder>). Thanks to Gary Gregory. |
ggregory |
|
Bump commons-parent from 57 to 58. Thanks to Gary Gregory, Dependabot. |
ggregory |
Release 2.12.0 – 2023-05-13
Type |
Changes |
By |
|
IOUtils.toByteArray size validation does not match documentation. Fixes IO-697. Thanks to otter606. |
kinow |
|
Fix Javadoc links to the JRE Javadoc 8. Thanks to Gary Gregory. |
ggregory |
|
FileWriterWithEncoding for an existing file no longer truncates the file. #251. Fixes IO-744. Thanks to RBRi, Gary Gregory. |
ggregory |
|
A null Charset or Charset name in FileWriterWithEncoding constructors uses the default Charset. Thanks to Gary Gregory. |
ggregory |
|
Fix usage of assertNotNull #269. Thanks to Davide Angelocola. |
ggregory |
|
FilenameUtils directoryContains() should handle files with the same prefix #217. Fixes IO-727. Thanks to trungPa, Gary Gregory. |
ggregory |
|
Drop unnecessary casts and conversions #267. Fixes IO-746. Thanks to Davide Angelocola. |
ggregory |
|
FileUtils.moveToDirectory() exception documentation and exception message error. Fixes IO-748. Thanks to Dirk Heinrichs, Gary Gregory, Elango Ravi. |
ggregory |
|
ThreadMonitor.sleep(Duration) ignores nanoseconds. Thanks to Gary Gregory. |
ggregory |
|
Fix Javadoc in ThreadMonitor#run() method. #273. Thanks to Arturo Bernal. |
ggregory |
|
FileUtils.listFiles() does not list matching files if File parameter is a symbolic link. Fixes IO-749. Thanks to haihuiyang, Gary Gregory. |
ggregory |
|
Fix typo in Javadocs for FileUtils#convertFileCollectionToFileArray() #276. Thanks to niranjanghule, Gary Gregory. |
ggregory |
|
Avoid Code Duplication: Reuse Sleep from ThreadMonitor #66. Thanks to DaGeRe, Gary Gregory. |
ggregory |
|
FileUtils.iterateFiles also lists directories. Fixes IO-750. Thanks to Sita Geßner, Sebastian Peters, Gary Gregory. |
ggregory |
|
Wrong exception message in FileUtils.setLastModified(File, File). Fixes IO-721. Thanks to Dirk Heinrichs, Gary Gregory. |
ggregory |
|
Infinite loop in ReaderInputStream instead of throwing exception for CodingErrorAction.REPORT. Fixes IO-717. Thanks to Marcono1234, Gary Gregory. |
ggregory |
|
ReaderInputStream enter infinite loop for too small buffer sizes. Fixes IO-716. Thanks to Marcono1234, Gary Gregory. |
ggregory |
|
Infinite loop in CharSequenceInputStream.read for 4-byte characters with UTF-8 and 3-byte buffer. Fixes IO-638. Thanks to Thayne McCombs, Gary Gregory. |
ggregory |
|
PathUtils.setReadOnly(Path, boolean, LinkOption...) should add READ_* file attributes when using POSIX. Fixes IO-638. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.setReadOnly(Path, boolean, LinkOption...) readOnly argument is always assumed true on POSIX. Fixes IO-638. Thanks to Gary Gregory. |
ggregory |
|
Prevent IllegalArgumentExceptions in BrokenInputStream/Reader/OutputStream/Writer #278. Fixes IO-729. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
FileUtils.copyURLToFile(URL, File, int, int) leaks its URLConnection.
Called by FileUtils.copyURLToFile(URL, File). Thanks to Gary Gregory. |
ggregory |
|
Fixed ReaderInputStream not calling CharsetEncoder.flush issue #283. Fixes IO-714. Thanks to kevinwang1975, Gary Gregory. |
ggregory |
|
Minor changes #287. Thanks to Arturo Bernal. |
ggregory |
|
Update FileWriterWithEncoding to extend ProxyWriter #296. Fixes IO-756. Thanks to wodencafe, Gary Gregory, Bruno P. Kinoshita. |
ggregory |
|
Initialize the message of an IOExceptionList to a default if null. Thanks to Gary Gregory. |
ggregory |
|
When deleting symlinks, File/PathUtils.deleteDirectory() changes file permissions of the target. Fixes IO-751. Thanks to Gary Gregory, Richard Cyganiak. |
ggregory |
|
ReaderInputStream maps null Charset, Charset name, and CharsetEncoder to the platform default instead of throwing a NullPointerException. Thanks to Gary Gregory. |
ggregory |
|
CharSequenceInputStream maps null Charset and Charset name to the platform default instead of throwing a NullPointerException. Thanks to Gary Gregory. |
ggregory |
|
WriterOutputStream maps null Charset, Charset name, and CharsetEncoder name to the platform default instead of throwing a NullPointerException. Thanks to Gary Gregory. |
ggregory |
|
FileUtils.copyURLToFile should create target parent directories and overwrite target file #319. Thanks to Chad Wilson, Gary Gregory. |
ggregory |
|
Fix incorrect FilenameUtils Javadoc for null bytes #310. Fixes IO-484. Thanks to Marcono1234, Gary Gregory. |
ggregory |
|
Change to uppercase variable constant. #323. Fixes IO-484. Thanks to Arturo Bernal. |
ggregory |
|
IOCase.isCaseSensitive(IOCase) result is backward #325. Fixes IO-484. Thanks to David Huang, Gary Gregory. |
ggregory |
|
Deprecate PathUtils.NOFOLLOW_LINK_OPTION_ARRAY in favor of noFollowLinkOptionArray(). Fixes IO-758. Thanks to Marcono1234, Gary Gregory. |
ggregory |
|
Improve ReaderInputStream documentation #291. Thanks to Marcono1234, Gary Gregory. |
ggregory |
|
Fix misleading comments in FileFilterTest #334. Thanks to richarda23. |
ggregory |
|
Add missing Javadoc for exceptions thrown for invalid arguments #339. Thanks to Diego Marcilio. |
ggregory |
|
FileFilterTest minor fixes #340. Thanks to richarda23. |
ggregory |
|
IOUtils.write() throws OutOfMemoryError/NegativeArraySizeException while writing big strings #343. Fixes IO-764. Thanks to DaGeRe, Gary Gregory. |
ggregory |
|
Add reserved Windows file names CONIN$ and CONOUT$ to FileSystem #355. Fixes IO-768. Thanks to Marcono1234, Michael Osipov. |
ggregory |
|
RegexFileFilter is no longer Serializable. Fixes IO-773. Thanks to Dominik Reinarz, Gary Gregory. |
ggregory |
|
[Javadoc] FileFilterUtils doc does not match impl: missing some file filters. Fixes IO-763. Thanks to Richard Adams, Gary Gregory. |
ggregory |
|
FileSystem.WINDOWS.isReservedFileName doesn't check for file extension. Fixes IO-762. Thanks to Leonidas Chiron, Gary Gregory. |
ggregory |
|
Confusing Javadoc on IOUtils#resourceToURL() and other resource* methods. Fixes IO-772. Thanks to Dan Ziemba, Gary Gregory. |
ggregory |
|
FileUtils.copyFile methods throw an unnecessary "Failed to copy full contents from" exception. Fixes IO-443. Thanks to Dan Ziemba, Gary Gregory. |
ggregory |
|
Pick up Javadoc from super for override write() methods in AbstractByteArrayOutputStream and ByteArrayOutputStream. Fixes IO-564. Thanks to Hao Zhong, Bernd Eckenfels, Pascal Schumacher, Gary Gregory. |
ggregory |
|
Fix minor typos #367. Thanks to Marc Wrobel. |
ggregory |
|
Fix parameters to requireNonNull call in DeferredOutputSteam #368. Fixes IO-776. Thanks to Chris Povirk. |
kinow |
|
Fix PathUtils.copyFileToDirectory(URL,Path,CopyOption[]). Thanks to Gary Gregory. |
ggregory |
|
FileUtils.doCopyFile uses different methods to check the file sizes. Fixes IO-386. Thanks to Sebb, Bernd Eckenfels, zhipengxu, Gary Gregory. |
ggregory |
|
Fix typos #375. Thanks to Michael Ernst. |
ggregory |
|
FilenameUtils.normalize javadoc and tests #383. Fixes IO-611. Thanks to Fedor Urvanov. |
ggregory |
|
Better docs in IOUtils and IOUtils.byteArray(int size) #374. Fixes IO-611. Thanks to ArdenL-Liu, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
|
SequenceReader should close readers when its close method is called #391. Fixes IO-782. Thanks to Matteo Di Giovinazzo, Gary Gregory. |
ggregory |
|
Fix symbolic link file filter #450. Fixes IO-790. Thanks to Miguel Muñoz, Gary Gregory. |
ggregory |
|
Apply nanoseconds precision for QueueInputStream timeout duration. #453. Fixes IO-790. Thanks to maxxedev, Gary Gregory, Bruno P. Kinoshita. |
ggregory |
|
Fix overflow for FileUtilsTest constants #456. Thanks to Marcono1234. |
ggregory |
|
Serialization is deprecated and will be removed in 3.0. Thanks to Gary Gregory. |
ggregory |
|
FileSystemUtils.performCommand(String[], int, Duration): Use Locale.getDefault() instead of ENGLISH. Thanks to Gary Gregory. |
ggregory |
|
Add GitHub coverage.yml. Thanks to Gary Gregory. |
ggregory |
|
Add MemoryMappedFileInputStream #215. Fixes IO-726. Thanks to shollander, Gary Gregory. |
ggregory |
|
Add BrokenReader.INSTANCE. Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedBufferedReader. Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedFilterReader. Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedFilterWriter. Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedFilterInputStream. Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedFilterOutputStream. Thanks to Gary Gregory. |
ggregory |
|
Add BrokenInputStream.INSTANCE. Thanks to Gary Gregory. |
ggregory |
|
Add ClosedInputStream.INSTANCE and deprecate CLOSED_INPUT_STREAM. Thanks to Gary Gregory. |
ggregory |
|
Add ClosedReader.INSTANCE and deprecate CLOSED_READER. Thanks to Gary Gregory. |
ggregory |
|
Add BrokenWriter.INSTANCE. Thanks to Gary Gregory. |
ggregory |
|
Add ClosedOutputStream.INSTANCE and deprecate CLOSED_OUTPUT_STREAM. Thanks to Gary Gregory. |
ggregory |
|
Add ClosedWriter.INSTANCE and deprecate CLOSED_WRITER. Thanks to Gary Gregory. |
ggregory |
|
Add NullOutputStream.INSTANCE and deprecate NULL_OUTPUT_STREAM. Thanks to Gary Gregory. |
ggregory |
|
Add NullPrintStream.INSTANCE and deprecate NULL_PRINT_STREAM. Thanks to Gary Gregory. |
ggregory |
|
Add NullWriter.INSTANCE and deprecate NULL_WRITER. Thanks to Gary Gregory. |
ggregory |
|
Add NullInputStream.INSTANCE. Thanks to Gary Gregory. |
ggregory |
|
Add NullReader.INSTANCE. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.readString(Path, Charset). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.newOutputStream(File, boolean). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.newOutputStream(Path, boolean). Thanks to Gary Gregory. |
ggregory |
|
Add UncheckedAppendable. Thanks to Gary Gregory. |
ggregory |
|
Add and reuse UncheckedIOExceptions. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.getTempDirectory(). Thanks to Gary Gregory. |
ggregory |
|
Add FileSystem.getNameSeparator(). Thanks to Gary Gregory. |
ggregory |
|
Add FileSystem.normalizeSeparators(). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.isNewer(Path, FileTime, LinkOption...). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.isNewer(Path, Instant, LinkOption...). Thanks to Gary Gregory. |
ggregory |
|
Add AgeFileFilter.AgeFileFilter(Instant).
Add AgeFileFilter.AgeFileFilter(Instant, boolean). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.lastModifiedFileTime(File). Thanks to Gary Gregory. |
ggregory |
|
Add FileTimes. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.waitFor(Path, Duration, LinkOption...). Thanks to Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.input.Tailer.getDelayDuration(). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.current(). Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.setLastModifiedTime(Path) for more precision.
Add and use PathUtils.setLastModifiedTime(Path, Path) for more precision. Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.isNewer(Path, ChronoZonedDateTime, LinkOption...) for more precision.
Add and use PathUtils.isNewer(Path, Path) for more precision.
Add and use FileUtils.isNewer(File, FileTime) for more precision. Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.isOlder(Path, FileTime, LinkOption...).
Add and use PathUtils.isOlder(Path, Instant, LinkOption...).
Add and use PathUtils.isOlder(Path, long, LinkOption...).
Add and use PathUtils.isOlder(Path, Path). Thanks to Gary Gregory. |
ggregory |
|
Add and use PathUtils.sizeOf(Path).
Add and use PathUtils.sizeOfAsBigInteger(Path).
Add and use PathUtils.sizeOfDirectory(Path).
Add and use PathUtils.sizeOfDirectoryAsBigInteger(Path). Thanks to Gary Gregory. |
ggregory |
|
Add and use IOCase.value(IOCase, IOCase). Thanks to Gary Gregory. |
ggregory |
|
Add Tailer.Tailable interface to allow tailing of remote files for example using jCIFS. Thanks to Jon Freedman, Gary Gregory. |
jonfreedman |
|
Add and use RandomAccessFileMode. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.writeString(Path, CharSequence, Charset, OpenOption...). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtiFiles.getFileAttributeView() shorthands:
- PathUtils.getAclFileAttributeView(Path, LinkOption...)
- PathUtils.getDosFileAttributeView(Path, LinkOption...)
- PathUtils.getPosixFileAttributeView(Path, LinkOption...) Thanks to Gary Gregory. |
ggregory |
|
Make commons-io a JPMS module by adding module-info.class. Fixes IO-747. |
mgrigorov |
|
Add IOUtils method to copy output stream to input stream #281. Fixes IO-753. Thanks to SebastianDietrich, Gary Gregory. |
ggregory |
|
Add PathUtils.isPosix(Path, LinkOption...). #290 Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.readAttributes(Path, Class, LinkOption...). #290 Thanks to Gary Gregory. |
ggregory |
|
Add IOExceptionList.checkEmpty(List, Object). Thanks to Gary Gregory. |
ggregory |
|
Add IOBiConsumer, IOTriConsumer, IOComparator, IOUnaryOperator, IOBinaryOperator. Thanks to Gary Gregory. |
ggregory |
|
Add and reuse IOConsumer forAll(*), forEach(*), and forEachIndexed(*). Thanks to Gary Gregory. |
ggregory |
|
Add CharsetEncoders. Thanks to Gary Gregory. |
ggregory |
|
Add CharsetDecoders. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.createParentDirectories(Path, LinkOption, FileAttribute...). Thanks to Gary Gregory. |
ggregory |
|
Update FileEntry to use FileTime instead of long for file time stamps. Thanks to Gary Gregory. |
ggregory |
|
Add more tests for IOUtils.contentEqualsIgnoreEOL #137. Fixes IO-680. Thanks to XenoAmess, sebbASF, Gary Gregory. |
ggregory |
|
Reduce boilerplate through new UncheckedIO class and friends in org.apache.commons.io.function. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.touch(Path). Thanks to Gary Gregory. |
ggregory |
|
Add FileSystem.getIllegalFileNameCodePoints(). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.isFileNewer(File, ChronoLocalDate, OffsetTime).
Add FileUtils.isFileNewer(File, OffsetDateTime).
Add FileUtils.isFileOlder(File, ChronoLocalDate, OffsetTime).
Add FileUtils.isFileOlder(File, OffsetDateTime). Thanks to Isira Seneviratne, Gary Gregory. |
ggregory |
|
Add IOBiConsumer.noop(). Thanks to Gary Gregory. |
ggregory |
|
Add IOUtils.closeQuietly(Iterable<Closeable>).
Add IOUtils.closeQuietly(Stream<Closeable>). Thanks to Gary Gregory. |
ggregory |
|
Add Charsets.toCharset(Charset, Charset).
Add Charsets.toCharset(String, Charset). Thanks to Gary Gregory. |
ggregory |
|
Add XmlStreamWriter(OutputStream, Charset). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.getLastModifiedFileTime(*). Thanks to Gary Gregory. |
ggregory |
|
Add IOBiFunction, IOTriFunction, IOQuadFunction, IOPredicate, IOIterator, IOSpliterator, IOBaseStream, IOStream, FilesUncheck. Thanks to Gary Gregory. |
ggregory |
|
Add IOUtils.consume(Reader). Thanks to Gary Gregory. |
ggregory |
|
Add IOSupplier.asSupplier(). Thanks to Gary Gregory. |
ggregory |
|
Add IOFunction.asFunction(). Thanks to Gary Gregory. |
ggregory |
|
Add IOConsumer.asConsumer(). Thanks to Gary Gregory. |
ggregory |
|
Add TimestampedObserver.isClosed(). Thanks to Gary Gregory. |
ggregory |
|
IOExceptionList implements Iterable. Thanks to Gary Gregory. |
ggregory |
|
Add support for Appendable to HexDump #418. Fixes IO-784. Thanks to Fredrik Kjellberg, Gary Gregory. |
ggregory |
|
Add and use ThreadUtils. Thanks to DaGeRe, Gary Gregory. |
ggregory |
|
Add UnsynchronizedFilterInputStream. Fixes IO-786. Thanks to Gary Gregory. |
ggregory |
|
Add UnsynchronizedBufferedInputStream. Fixes IO-786. Thanks to Gary Gregory, Benoit Tellier. |
ggregory |
|
Add FileSystem.getBlockSize(). Thanks to Gary Gregory. |
ggregory |
|
Add builders and avoid creating more constructors for all permutations of current options. Thanks to Gary Gregory. |
ggregory |
|
Refactor using new Supplier API IOUtils.toString(IOSupplier<InputStream>, Charset[, IOSupplier<String>]). Thanks to Gary Gregory, maxxedev. |
ggregory |
|
Refactor using new Supplier API org.apache.commons.io.file.PathUtils.copy(IOSupplier<InputStream>, Path, CopyOption...). Thanks to Gary Gregory, maxxedev. |
ggregory |
|
Bump actions/cache from 2.1.6 to 3.0.10 #307, #337, #393. Thanks to Dependabot, Gary Gregory. |
kinow |
|
Bump actions/checkout from 2.3.4 to 3.1.0 #286, #298, #330, #392. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump actions/setup-java from 2 to 3.6.0 #346, #397. Thanks to Dependabot. |
kinow |
|
Bump github/codeql-action from 1 to 2 #353. Thanks to Dependabot. |
kinow |
|
Bump Maven Javadoc plugin from 3.2.0 to 3.4.1. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump spotbugs-maven-plugin from 4.2.3 to 4.7.3.0 #250, #259, #272, #274, #285, #288, #289, #305, #315, #326, #338, #360, #366, #370, #380, #395, #403. Thanks to Dependabot. |
ggregory |
|
Bump spotbugs from 4.5.2 to 4.7.3 #313, #317, #357, #382, #398. Thanks to Gary Gregory, Dependabot. |
kinow |
|
Bump JUnit from 5.7.2 to 5.8.2. Thanks to Gary Gregory. |
ggregory |
|
Bump maven-enforcer-plugin from 3.0.0-M3 to 3.3.0 #255, #363, #431, #446. Thanks to Dependabot. |
ggregory |
|
Bump checkstyle from 8.44 to 9.3 #256, #257, #266, #279, #292. #308. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump junit-bom from 5.8.0-M1 to 5.9.1 #260, #271, #275, #309, #386. Thanks to Dependabot. |
ggregory |
|
Bump mockito-inline from 3.11.2 to 4.11.0 #262, #264, #282, #306, #314, #331, #348, #359, #381, #399, #405, #414, #420. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Bump jmh.version from 1.32 to 1.36 #258, #316, #342, #404. Thanks to Dependabot. |
ggregory |
|
Bump moditect-maven-plugin from 1.0.0.RC1 to 1.0.0.Final #280, #439, #445. Thanks to Dependabot. |
kinow |
|
Bump junit-pioneer from 1.4.2 to 1.9.1 #304. #335, #362, #402, #406, #409. Thanks to Dependabot, Gary Gregory. |
kinow |
|
Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. |
ggregory |
|
Bump commons-parent from 52 to 57 #388, #415, #421, #184. Thanks to Gary Gregory, Dependabot. |
ggregory |
|
Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. |
ggregory |
|
Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #354. Thanks to Dependabot. |
ggregory |
|
Bump commons.surefire.version 3.0.0-M5 to 3.0.0-M7. Thanks to Gary Gregory. |
ggregory |
|
Bump PMD from 6.44.0 to 6.52.0. Thanks to Gary Gregory. |
ggregory |
|
Bump maven-pmd-plugin from 3.16.0 to 3.19.0. Thanks to Gary Gregory. |
ggregory |
|
Bump apache-rat from 0.13 to 0.14. Thanks to Gary Gregory. |
ggregory |
|
Bump exec-maven-plugin from 3.0.0 to 3.1.0 #369. Thanks to Dependabot. |
kinow |
|
Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #376. Thanks to Dependabot. |
kinow |
|
Bump apache-rat-plugin from 0.14 to 0.15 #387. Thanks to Dependabot. |
kinow |
|
Bump default buffer size for CharSequenceInputStream to IOUtils#DEFAULT_BUFFER_SIZE. Thanks to Gary Gregory. |
ggregory |
|
Bump default buffer size for ChunkedOutputStream to IOUtils#DEFAULT_BUFFER_SIZE. Thanks to Gary Gregory. |
ggregory |
|
Bump default buffer size for ChunkedWriter to IOUtils#DEFAULT_BUFFER_SIZE. Thanks to Gary Gregory. |
ggregory |
|
Bump default buffer size for ReaderInputStream to IOUtils#DEFAULT_BUFFER_SIZE. Thanks to Gary Gregory. |
ggregory |
|
Bump default buffer size for WriterOutputStream to IOUtils#DEFAULT_BUFFER_SIZE. Thanks to Gary Gregory. |
ggregory |
Release 2.11.0 – 2021-07-09
Type |
Changes |
By |
|
FileUtils.listFiles does not list matching files if File parameter is a symbolic link. Fixes IO-741. Thanks to Zach Sherman. |
ggregory |
|
FileUtils#deleteDirectory(File) exception Javadoc inaccurate update #245. Fixes IO-724. Thanks to liran2000. |
ggregory |
|
Minor changes #243. Thanks to Arturo Bernal. |
ggregory |
|
Replace construction of FileInputStream and FileOutputStream objects with Files NIO APIs. #221. Thanks to Arturo Bernal. |
ggregory |
|
Fix IndexOutOfBoundsException in IOExceptionList constructors. Thanks to Gary Gregory. |
ggregory |
|
Remove IOException from the method signatures that no longer throw IOException.
This maintains binary compatibility but not source compatibility.
- FilenameUtils
directoryContains(String, String)
- BoundedReader
BoundedReader(java.io.Reader, int)
- IOUtils
lineIterator(java.io.InputStream, Charset)
lineIterator(java.io.InputStream, String)
toByteArray(String)
toInputStream(CharSequence, String)
toInputStream(String, String)
toString(byte[])
toString(byte[], String) Thanks to Gary Gregory. |
ggregory |
|
Add SymbolicLinkFileFilter. Thanks to Gary Gregory. |
ggregory |
|
Add test to make sure the setter of AndFileFilter works correctly #244. Thanks to trncate. |
ggregory |
|
Add XmlStreamReader(Path). Thanks to Gary Gregory. |
ggregory |
|
Bump mockito-inline from 3.11.0 to 3.11.2 #247. Thanks to Dependabot. |
ggregory |
|
Bump jmh.version from 1.27 to 1.32 #237. Thanks to Dependabot. |
ggregory |
Release 2.10.0 – 2021-06-10
Type |
Changes |
By |
|
RegexFileFilter uses the path and file name instead of just the file name. Fixes IO-733. Thanks to Jim Sellers, Gary Gregory. |
ggregory |
|
The OSGi manifest now contains sun.* import packages #239. Fixes IO-734. Thanks to Eric Norman. |
ggregory |
|
Sanitize double slash after prefix #79. Fixes IO-585. Thanks to Adam McClenaghan. |
ggregory |
|
Add and use RegexFileFilter.toString(). Thanks to Gary Gregory. |
ggregory |
|
Add and use RegexFileFilter.RegexFileFilter(Pattern, Function<Path>, String>) Thanks to Gary Gregory. |
ggregory |
|
Add and use IOCase.isCaseSensitive(IOCase). Thanks to Gary Gregory. |
ggregory |
|
Bump actions/cache from 2.1.5 to 2.1.6 #238. Thanks to Dependabot. |
ggregory |
|
Bump junit-pioneer from 1.4.1 to 1.4.2 #240. Thanks to Dependabot. |
ggregory |
|
Bump checkstyle from 8.42 to 8.44 #241, #248. Thanks to Dependabot. |
ggregory |
|
Bump mockito-inline from 3.10.0 to 3.11.0 #242. Thanks to Dependabot. |
ggregory |
Release 2.9.0 – 2021-05-22
Type |
Changes |
By |
|
IOUtils.toByteArray(InputStream) Javadoc does not match code. Fixes IO-686. Thanks to Alan Moffat, Gary Gregory. |
ggregory |
|
FileUtils: Remove Instant->ZonedDateTime->Instant round-trip. Fixes IO-689. Thanks to Uwe Schindler. |
aherbert |
|
Make FilenameUtils.equals() not throw an exception #154. Thanks to Michael Ernst, Gary Gregory. |
ggregory |
|
Un-deprecate IOUtils.closeQuietly() methods. Thanks to Jan Peter Stotz, Bernd Eckenfels, Gary Gregory. |
ggregory |
|
FileUtils#copyDirectory(File, File, FileFilter, preserveFileDate) clean up #163. Thanks to Michiel Kalkman. |
ggregory |
|
AccumulatorPathVisitor does not track directories properly. Thanks to Gary Gregory. |
ggregory |
|
FileUtils.iterateFiles runs out of memory when executed for a directory with large number of files.
Re-implement FileUtils' iterateFiles(), iterateFilesAndDirs(), listFiles(), listFilesAndDirs() to use NIO
file tree walking instead of IO file listings to avoid memory consumption issues on large file trees. Fixes IO-597. Thanks to Gary Gregory, Arvind, Rob Spoor. |
ggregory |
|
FileUtils.forceDelete(File) actually forces deletion of read-only files as it did in version 2.6. Thanks to Gary Gregory. |
ggregory |
|
PathUtils.deleteFile() no longer throws a NoSuchFileException when applied on a symbolic link pointing
to a file that doesn't exist. Fixes IO-692. Thanks to Matthew Rooney, Emmanuel Bourg. |
ebourg |
|
Behavior change in FileUtils.copyDirectory() file last modified timestamp preservation. Match Javadoc to code. Fixes IO-694. Thanks to Tan Yee Fan, Gary Gregory. |
ggregory |
|
Fix getPrefixLength method for Linux filename #179. Fixes IO-600. Thanks to Abhyankar Chaubey, Gary Gregory. |
ggregory |
|
Wrong logging in FileUtils.setLastModified. Fixes IO-699. Thanks to tza, Gary Gregory. |
ggregory |
|
IOUtils.toByteArray(InputStream) Javadoc does not match code. Fixes IO-686. Thanks to Alan Moffat, Sebb, Gary Gregory. |
ggregory |
|
CopyUtils deprecation message gives wrong version. Fixes IO-688. Thanks to Michael Ernst, Gary Gregory. |
ggregory |
|
Make PathUtils.setReadOnly deal with LinuxDosFileAttributeView #186. Fixes IO-701. Thanks to Gary Gregory. |
ggregory |
|
FileUtils.forceDelete does not delete invalid links. #187. Fixes IO-702. Thanks to Boris Unckel, Gary Gregory. |
ggregory |
|
IOUtils.toByteArray(null) no longer throws a NullPointerException. Fixes IO-690. Thanks to Chris Heisterkamp, Gary Gregory. |
ggregory |
|
MarkShieldInputStream#reset should throw UnsupportedOperationException. Fixes IO-705. Thanks to Hao Zhong, Gary Gregory. |
ggregory |
|
LockableFileWriter.close() should fail when the lock file cannot be deleted. Fixes IO-705. Thanks to Hao Zhong, Gary Gregory. |
ggregory |
|
Fix infinite loops in ObservableInputStream read(*) when an exception is caught but not re-thrown. Fixes IO-705. Thanks to Hao Zhong, Gary Gregory. |
ggregory |
|
Fixed error of copying directories between different file systems #203. Fixes IO-719. Thanks to Andrew Shcheglov, Gary Gregory. |
ggregory |
|
Fix Typos in JavaDoc, Comments and Tests #201. Thanks to Felix Rilling. |
ggregory |
|
FileUtils.checksumCRC32 and FileUtils.checksum are not thread safe. Fixes IO-718. Thanks to Robert Cooper, Gary Gregory. |
ggregory |
|
Fix error about usage of DirectBuffer in JRE 16/17 #205. Fixes IO-720. Thanks to XenoAmess. |
ggregory |
|
Prevent infinite loop with AbstractCharacterFilterReader if EOF is filtered out #226. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Check for long streams in IOUtils.toByteArray #175. Fixes IO-429. Thanks to Ivan Leskin, Ivan Leskin. |
ggregory |
|
Add FileSystemProviders class. Thanks to Gary Gregory. |
ggregory |
|
Let org.apache.commons.io.filefilter classes work with java.nio.file.Files.walk* APIs. Thanks to Gary Gregory. |
ggregory |
|
Let org.apache.commons.io.filefilter classes work with java.nio.file.Files#newDirectoryStream(Path, DirectoryStream.Filter). Thanks to Gary Gregory. |
ggregory |
|
Add and adapt ReadAheadInputStream and BufferedFileChannelInputStream from Apache Spark. Fixes IO-510. Thanks to Gary Gregory, Apache Spark, David Mollitor. |
ggregory |
|
Add PathUtils.createParentDirectories(Path, FileAttribute...). Thanks to Gary Gregory. |
ggregory |
|
Add factory methods to CloseShieldInputStream, CloseShieldReader, CloseShieldOutputStream, CloseShieldWriter, #173. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Add QueueInputStream and QueueOutputStream as simpler alternatives to PipedInputStream and PipedOutputStream #171. Thanks to maxxedev, Gary Gregory. |
ggregory |
|
Add StandardLineSeparator. Thanks to Gary Gregory. |
ggregory |
|
Replace magic numbers with constants with the new IOUtils.CR and LF. Thanks to Gary Gregory. |
ggregory |
|
Add FileSystem#supportsDriveLetter(). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.delete(File). Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.moveFile(File, File, CopyOption...) #185. Fixes IO-700. Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.isEmptyDirectory(File). Fixes IO-700. Thanks to Gary Gregory. |
ggregory |
|
Add FileUtils.lastModified[Unchecked](File) to workaround https://bugs.openjdk.java.net/browse/JDK-8177809. Thanks to Gary Gregory. |
ggregory |
|
Add null safe variants of isDirectory and isRegularFile. Fixes IO-709. Thanks to Boris Unckel, Gary Gregory. |
ggregory |
|
Add and use IOExceptionList(String, List). Thanks to Gary Gregory. |
ggregory |
|
Add and use ObservableInputStream.ObservableInputStream(InputStream, Observer...). Thanks to Gary Gregory. |
ggregory |
|
Make ObservableInputStream.getObservers() public. Thanks to Gary Gregory. |
ggregory |
|
Add TimestampedObserver. Fixes IO-706. Thanks to Gary Gregory. |
ggregory |
|
Add and use IOUtils.byteArray(*). Thanks to Gary Gregory. |
ggregory |
|
Make public and reuse IOUtils.EMPTY_BYTE_ARRAY. Thanks to Gary Gregory. |
ggregory |
|
Add IOUtils.copy(URL, File). Thanks to Gary Gregory. |
ggregory |
|
Add copy(URL, OutputStream). Thanks to Gary Gregory. |
ggregory |
|
Add DeferredFileOutputStream.toInputStream() #206. Fixes IO-651. Thanks to jmark109, Gary Gregory. |
ggregory |
|
Add CharacterSetFilterReader.CharacterSetFilterReader(Reader, Integer...). Thanks to Gary Gregory. |
ggregory |
|
Add AbstractCharacterFilterReader(Reader, IntPredicate), #227.
Add CharacterFilterReader(Reader, IntPredicate), #227.
Add CharacterFilterReaderIntPredicateTest, #227. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Add IOConsumer.noop(). Thanks to Gary Gregory. |
ggregory |
|
Add constructor ThresholdingOutputStream(int, IOConsumer, IOFunction) and make the class concrete. Thanks to Gary Gregory. |
ggregory |
|
Add constructor accepting collection of file alteration observers #236. Thanks to nstdspace, Gary Gregory. |
ggregory |
|
Update junit-jupiter from 5.6.2 to 5.7.0 #153. Thanks to Dependabot. |
ggregory |
|
Update mockito-core from 3.5.9 to 3.10.0, #152, #155, #157, #166, #167, #169, #182. Thanks to Dependabot. |
ggregory |
|
Bump mockito-inline from 3.7.0 to 3.10.0 #188, #207, #230. Thanks to Dependabot. |
ggregory |
|
Update commons.jacoco.version 0.8.5 to 0.8.7, fixes Java 15 builds and up. Thanks to Gary Gregory. |
ggregory |
|
Update spotbugs from 4.1.2 to 4.5.0, #158, #164, #165, #180, #199, #213, #224, #302. Thanks to Dependabot. |
ggregory |
|
Bump spotbugs-maven-plugin from 4.0.4 to 4.2.3, #161, #172, #223. Thanks to Dependabot. |
ggregory |
|
Update org.junit-pioneer:junit-pioneer 0.9.0 -> 1.4,1, #159, #162, #170, #189, #191, #210, #229. Thanks to Gary Gregory, Dependabot. |
ggregory |
|
Update actions/checkout from v2.3.2 to v2.3.4, #156, #168. Thanks to Dependabot. |
ggregory |
|
Bump actions/setup-java from v1.4.2 to v2 #160. Thanks to Dependabot, Gary Gregory. |
ggregory |
|
Update maven-surefire-plugin from 2.22.2 to 3.0.0-M5. Thanks to Gary Gregory. |
ggregory |
|
Minor improvements, #176, 177, #190. Thanks to Arturo Bernal. |
ggregory |
|
Update commons.japicmp.version 0.14.4 -> 0.15.3. Thanks to Gary Gregory. |
ggregory |
|
Tiny performance improvement in FileUtils#moveDirectoryToDirectory() #174. Thanks to Michiel Kalkman. |
ggregory |
|
Bump checkstyle from 8.38 to 8.42 #689, #209, #225. Thanks to Dependabot. |
ggregory |
|
Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #198. Thanks to Dependabot. |
ggregory |
|
Bump jimfs from 1.1 to 1.2 #183. Thanks to Dependabot. |
ggregory |
|
Improve performance of IOUtils.contentEquals(InputStream, InputStream). Thanks to XenoAmess, Gary Gregory. |
ggregory |
|
Improve performance of IOUtils.contentEquals(Reader, Reader). Thanks to XenoAmess, Gary Gregory. |
ggregory |
|
Bump actions/cache from v2 to v2.1.5 #202, #228. Thanks to Dependabot. |
ggregory |
|
Bump junit-bom from 5.7.0 to 5.7.2 #200, #232. Thanks to Dependabot. |
ggregory |
|
Update from Apache Commons Lang 3.11 to 3.12.0. Thanks to Gary Gregory. |
ggregory |
|
Minor improvements #233. Thanks to Arturo Bernal. |
ggregory |
|
Simplify Assertions in tests #234. Thanks to Arturo Bernal. |
ggregory |
Release 2.8.0 – 2020-09-05
Type |
Changes |
By |
|
Add org.apache.commons.io.input.CircularInputStream. Thanks to Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.file.PathUtils.cleanDirectory(Path, FileVisitOption...). Thanks to Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.file.PathUtils.deleteDirectory(Path, FileVisitOption...). Thanks to Gary Gregory. |
ggregory |
|
Add NullAppendable. Thanks to Gary Gregory. |
ggregory |
|
CharSequenceReader.skip should return 0 instead of EOF on stream end #123. Thanks to Rob Spoor, Jochen Wiedmann. |
ggregory |
|
Implement CharSequenceReader.ready() #122. Thanks to Rob Spoor. |
ggregory |
|
Fix code smells; fix typos #115. Fixes IO-669. Thanks to XenoAmess, Gary Gregory. |
ggregory |
|
Add caching for required charsets #120. Thanks to Jerome Wolff, Gary Gregory. |
ggregory |
|
Make some simplifications #121. Fixes IO-673. Thanks to Jerome Wolff. |
ggregory |
|
InfiniteCircularInputStream is not infinite if its input buffer contains -1. Fixes IO-674. Thanks to Gary Gregory. |
ggregory |
|
InfiniteCircularInputStream throws a divide-by-zero exception when reading if its input buffer is size 0. Fixes IO-675. Thanks to Gary Gregory. |
ggregory |
|
FileSystem.getCurrent() does not return the correct enum. Fixes IO-677. Thanks to Gary Gregory. |
ggregory |
|
input.AbstractCharacterFilterReader passes count of chars read #132. Fixes IO-679. Thanks to proneel. |
ggregory |
|
Add PathUtils.getAclEntryList(Path). Thanks to Gary Gregory. |
ggregory |
|
Null-guard IOUtils.close(Closeable, IOConsumer). Thanks to Gary Gregory. |
ggregory |
|
Add ReversedLinesFileReader.readLines(int). Thanks to Gary Gregory. |
ggregory |
|
Add ReversedLinesFileReader.toString(int). Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils.delete(Path, DeleteOption...).
Add PathUtils.deleteDirectory(Path, DeleteOption...).
Add PathUtils.deleteFile(Path, DeleteOption...).
Add PathUtils.setReadOnly(Path, boolean, LinkOption...).
Add CleaningPathVisitor.CleaningPathVisitor(PathCounters, DeleteOption[], String...).
Add DeletingPathVisitor.DeletingPathVisitor(PathCounters, DeleteOption[], String...). Fixes IO-684. Thanks to Gary Gregory, Robin Jansohn. |
ggregory |
|
CircularBufferInputStream.read() fails to convert byte to unsigned int. Fixes IO-683. |
sebb |
|
Fix SpotBugs issues in org.apache.commons.io.FileUtils. Thanks to Gary Gregory. |
ggregory |
|
Add RandomAccessFileInputStream. Thanks to Gary Gregory. |
ggregory |
|
IOUtils.close(Closeable) should allow a list of closeables. Fixes IO-681. |
sebb |
|
Copying a File sets last modified date to 01 January 1970. Fixes IO-672. |
sebb |
|
Add IOUtils.consume(InputStream). Thanks to Gary Gregory. |
ggregory |
|
Add isFileNewer() and isFileOlder() methods that support the Java 8 Date/Time API. #124. Fixes IO-676. Thanks to Isira Seneviratne, Gary Gregory. |
ggregory |
|
Prevent NullPointerException in ReversedLinesFileReader constructors #117. Fixes IO-676. Thanks to Michael Ernst, Gary Gregory. |
ggregory |
|
Add a MarkShieldInputStream #119. Thanks to Adam Retter, Gary Gregory. |
ggregory |
|
Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator(). Thanks to Gary Gregory. |
ggregory |
|
Replace FindBugs with SpotBugs. Thanks to Gary Gregory. |
ggregory |
|
maven-checkstyle-plugin 3.1.0 -> 3.1.1. Thanks to Gary Gregory. |
ggregory |
|
Update tests from org.apache.commons:commons-lang3 3.10 to 3.11. Thanks to Gary Gregory. |
ggregory |
|
Update commons-parent from 50 to 51 #129. Thanks to Gary Gregory. |
ggregory |
|
Update actions/checkout from v1 to v2.3.1 #126. Thanks to Gary Gregory. |
ggregory |
|
Update junit-pioneer from 0.6.0 to 0.9.0, #127, #135, #138. Thanks to Gary Gregory. |
ggregory |
|
Update mockito-core from 3.3.3 to 3.5.9 #128, #133, #145, #149, #151. Thanks to Gary Gregory. |
ggregory |
|
Update spotbugs from 4.0.6 to 4.6.0 #134, #332. Thanks to Dependabot. |
ggregory |
|
Update actions/checkout from v2.3.1 to v2.3.2 #140. Thanks to Dependabot. |
ggregory |
|
Update actions/setup-java from v1.4.0 to v1.4.2 #141, #148. Thanks to Dependabot. |
ggregory |
|
Update com.github.siom79.japicmp:japicmp-maven-plugin 0.14.3 -> 0.14.4. Thanks to Gary Gregory. |
ggregory |
Release 2.7 – 2020-05-24
Type |
Changes |
By |
|
Some tests fail if the base path contains a space. Fixes IO-589. |
sebb |
|
Adding the CircularBufferInputStream, and the PeekableInputStream. |
jochen |
|
Make methods in ObservableInputStream.Observer public. Fixes IO-582. Thanks to Bruno Palos. |
jochen |
|
Thread bug in FileAlterationMonitor#stop(int). Fixes IO-535. Thanks to Svetlin Zarev, Anthony Raymond. |
pschumacher |
|
Add org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char). Fixes IO-553. |
ggregory |
|
Perform locale independent upper case conversions. Fixes IO-557. Thanks to luccioman. |
pschumacher |
|
Missing Javadoc in FilenameUtils causing Travis-CI build to fail. Fixes IO-570. Thanks to Pranet Verma. |
ggregory |
|
Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). Fixes IO-571. Thanks to pranet. |
ggregory |
|
Refactor duplicate code in org.apache.commons.io.FileUtils. Fixes IO-572. Thanks to Pranet Verma. |
ggregory |
|
Add readers to filter out given characters: CharacterSetFilterReader and CharacterFilterReader. Fixes IO-577. Thanks to Gary Gregory. |
ggregory |
|
FilenameUtils.normalize now verifies hostname syntax in UNC path. Fixes IO-559. |
|
|
Update org.apache.commons.io.FilenameUtils.isExtension(String, String[]) to use var args. Fixes IO-580. |
ggregory |
|
FileUtils.copyToFile(InputStream source, File destination) should not close input stream. Fixes IO-554. Thanks to Michele Mariotti. |
ggregory |
|
Add IOUtils copy methods with java.lang.Appendable as the target. Fixes IO-594. Thanks to Gary Gregory. |
ggregory |
|
FileUtils.doCopyFile(File, File, boolean) can throw ClosedByInterruptException. Fixes IO-604. Thanks to Gary Gregory. |
ggregory |
|
Add class CanExecuteFileFilter. Fixes IO-605. Thanks to Gary Gregory. |
ggregory |
|
Make array declaration in ThresholdingOutputStream consistent with other array declarations in the library #77. Fixes IO-701. Thanks to Raymond Tan. |
ggregory |
|
Support java.nio.Path and non-default file systems for ReversedLinesFileReader (#62). Fixes IO-578. Thanks to Mark Chesney. |
ggregory |
|
Add a convenience NullPrintStream. Fixes IO-608. Thanks to Gary Gregory. |
ggregory |
|
Update from Java 7 to Java 8. Fixes IO-607. Thanks to Gary Gregory. |
ggregory |
|
Remove throws IOException in method isSymlink() #80. Fixes IO-610. Thanks to Sebastian. |
ggregory |
|
Add class TeeReader. Fixes IO-612. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Add classes ClosedReader and CloseShieldReader. #84. Fixes IO-613. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Add classes TaggedWriter, ClosedWriter and BrokenWriter. #86. Fixes IO-614. Thanks to Rob Spoor. |
ggregory |
|
Add classes TeeWriter, FilterCollectionWriter, ProxyCollectionWriter, IOExceptionList, IOIndexedException. Fixes IO-615. Thanks to Gary Gregory, Rob Spoor. |
ggregory |
|
Add class AppendableWriter. #87. Fixes IO-616. Thanks to Rob Spoor. |
ggregory |
|
Add class CloseShieldWriter. #83. Fixes IO-617. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Add classes Added TaggedReader, ClosedReader and BrokenReader. #85. Fixes IO-618. Thanks to Rob Spoor. |
ggregory |
|
Support sub sequences in CharSequenceReader. #91. Fixes IO-619. Thanks to Rob Spoor. |
ggregory |
|
Corrected misleading exception message for FileUtils.copyDirectoryToDirectory. Fixes IO-625. Thanks to Mikko Maunu. |
ggregory |
|
A mistake in the FilenameUtils.concat()'s Javadoc about an absolute path. Fixes IO-626. Thanks to Yuji Konishi. |
ggregory |
|
Migration to JUnit Jupiter #97. Fixes IO-628. Thanks to Allon Mureinik. |
ggregory |
|
Deprecate org.apache.commons.io.output.NullOutputStream.NullOutputStream() in favor of org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM. Fixes IO-630. Thanks to Gary Gregory. |
ggregory |
|
Add a CountingFileVisitor (as the basis for a forthcoming DeletingFileVisitor). Fixes IO-631. Thanks to Gary Gregory. |
ggregory |
|
Add PathUtils for operations on NIO Path. Fixes IO-632. Thanks to Gary Gregory. |
ggregory |
|
Add DeletingFileVisitor. Fixes IO-633. Thanks to Gary Gregory. |
ggregory |
|
FileUtils#forceDelete should use Files#delete rather than File#delete so exception messages includes reason for failure. Fixes IO-629. Thanks to Ian Springer, Ian Springer, Gary Gregory. |
ggregory |
|
Make getCause synchronized and use a Deque instead of a Stack #64. Fixes IO-634. Thanks to Václav Haisman, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.IOUtils.close(Closeable). Fixes IO-635. Thanks to Gary Gregory. |
ggregory |
|
Add and reuse org.apache.commons.io.IOUtils.closeQuitely(Closeable, Consumer<IOException>).
Add and reuse org.apache.commons.io.IOUtils.close(Closeable, IOConsumer<IOException>). Fixes IO-636. Thanks to Gary Gregory. |
ggregory |
|
NPE in org.apache.commons.io.IOUtils.contentEquals(InputStream, InputStream) when only one input is null. Fixes IO-640. Thanks to Gary Gregory. |
ggregory |
|
NPE in org.apache.commons.io.IOUtils.contentEquals(Reader, Reader) when only one input is null. Fixes IO-641. Thanks to Gary Gregory. |
ggregory |
|
NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null. Fixes IO-643. Thanks to Gary Gregory. |
ggregory |
|
NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null. Fixes IO-644. Thanks to Gary Gregory. |
ggregory |
|
Add org.apache.commons.io.file.PathUtils.fileContentEquals(Path, Path, OpenOption...). Fixes IO-645. Thanks to Gary Gregory. |
ggregory |
|
Add a SequenceReader similar to java.io.SequenceInputStream. Fixes IO-458. Thanks to Gary Gregory, Joshua Gitlin. |
ggregory |
|
Implement directory content equality. 100#. Fixes IO-648. Thanks to Gary Gregory. |
ggregory |
|
Update tests from Apache Commons Lang 3.9 to 3.10. Thanks to Gary Gregory. |
ggregory |
|
Update tests org.junit-pioneer:junit-pioneer 0.3.0 -> 0.6.0. Thanks to Gary Gregory. |
ggregory |
|
Update tests org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.2. Thanks to Gary Gregory. |
ggregory |
|
Update tests org.mockito:mockito-core 3.0.0 -> 3.3.3. Thanks to Gary Gregory. |
ggregory |
|
Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Fixes IO-648. Thanks to Adam Retter, Alex Herbert, Gary Gregory. |
ggregory |
|
Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. Fixes IO-662. Thanks to Adam Retter, Gary Gregory. |
ggregory |
|
org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams. Fixes IO-664. Thanks to Gary Gregory. |
ggregory |
|
Normalize internal buffers to 8192 bytes. Fixes IO-666. Thanks to Gary Gregory. |
ggregory |
|
Ensure that passing a null InputStream results in NPE with tests #112. Fixes IO-665. Thanks to Otto Fowler, Gary Gregory. |
ggregory |
|
commons.jacoco.version 0.8.4 -> 0.8.5. Thanks to Gary Gregory. |
ggregory |
|
com.github.siom79.japicmp:japicmp-maven-plugin 0.14.1 -> 0.14.3. Thanks to Gary Gregory. |
ggregory |
|
Add functional interfaces IOFunction and IOSupplier #110. Fixes IO-667. Thanks to Adam Retter, Gary Gregory. |
ggregory |
|
Support sub sequences in CharSequenceReader #91. Thanks to Rob Spoor, Gary Gregory. |
ggregory |
|
Remove deprecated sudo setting. #113. Thanks to dengliming. |
ggregory |
Release 2.6 – 2017-10-15
Type |
Changes |
By |
|
Make code style of hasBOM() consistent with getBOMCharsetName(). Fixes IO-553. Thanks to Michael Ernst. |
britter |
|
ClosedOutputStream#flush should throw. Fixes IO-546. Thanks to Tomas Celaya. |
pschumacher |
|
Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility. Fixes IO-551. |
britter |
|
Documentation issue, fix 404 Javadoc issues in the description page. Fixes IO-550. Thanks to Jimi Adrian. |
kinow |
|
FileUtils#readFileToByteArray: optimize reading of files with known size. Fixes IO-542. Thanks to Ilmars Poikans. |
pschumacher |
|
Throw a IllegalArgumentException instead of NullPointerException in FileSystemUtils.freeSpaceWindows(). Fixes IO-547. Thanks to Nikhil Shinde, Michael Ernst, Gary Greory. |
ggregory |
|
Add convenience methods for copyToDirectory. Fixes IO-367. Thanks to James Sawle. |
pschumacher |
|
Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and the filter it constructs: AgeFileFilter(cutoff). Fixes IO-442. Thanks to Simon Robinson. |
pschumacher |
|
FileUtilTestCase.testForceDeleteDir() should not delete testDirectory parent. Fixes IO-534. |
sebb |
|
fix Tailer.run race condition runaway logging. Fixes IO-528. Thanks to Dave Moten. |
pschumacher |
|
getPrefixLength return -1 if Unix file contains colon. Fixes IO-483. Thanks to Marko Vasic. |
kinow |
|
FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows. Fixes IO-520. |
pschumacher |
|
.gitattributes not correctly applied. Fixes IO-516. Thanks to Jason Pyeron. |
pschumacher |
|
Allow Specifying Initial Buffer Size of DeferredFileOutputStream. Fixes IO-515. Thanks to Brett Lounsbury, Gary Gregory. |
ggregory |
|
ThresholdingOutputStream.thresholdReached() results in FileNotFoundException. Fixes IO-512. Thanks to Ralf Hauser. |
ggregory |
|
After a few unit tests, a few newly created directories not cleaned completely. Fixes IO-511. Thanks to Ahmet Celik. |
britter |
|
Exceptions are suppressed incorrectly when copying files. Fixes IO-502. Thanks to Christian Schulte. |
ggregory |
|
Update platform requirement to Java 7. Fixes IO-503. |
ggregory |
|
BOMInputStream shouldn't sort array of BOMs in-place. Fixes IO-537. Thanks to Borys Zibrov. |
ggregory |
|
Deprecate methods FileSystemUtils.freeSpaceKb(). Fixes IO-506. Thanks to Christian Schulte. |
ggregory |
|
Make LineIterator implement Closeable to support try-with-resources statements. Fixes IO-505. Thanks to Christian Schulte. |
ggregory |
|
Deprecated of all IOUtils.closeQuietly() methods and use try-with-resources internally. Fixes IO-504. Thanks to Christian Schulte. |
ggregory |
|
Add infinite circular input stream. Fixes IO-493. Thanks to Piotr Turski. |
pschumacher |
|
Add a ByteOrderParser class. Fixes IO-507. |
ggregory |
|
Add ObservableInputStream. Fixes IO-518. |
jochen |
|
Add MessageDigestCalculatingInputStream. Fixes IO-519. |
jochen |
|
Add convenience methods for reading class path resources. Fixes IO-513. Thanks to Behrang Saeedzadeh. |
ggregory |
|
Remove org.apache.commons.io.Java7Support. Fixes IO-514. |
pschumacher |
|
Implement special case handling for NTFS ADS names: FilenameUtils.getExtension(String),
and FilenameUtils.indexOfExtension(String) are now throwing an IllegalArgumentException,
if the file name in question appears to identify an alternate data stream (Windows only). Fixes IO-567. |
jochen |
Release 2.5 – 2016-04-22
Type |
Changes |
By |
|
Typo: In an IOUtils.java comment it says "focussed" instead of "focused". Fixes IO-492. Thanks to Santiago Castro. |
ggregory |
|
Converted all test cases to JUnit 4. Fixes IO-433. |
krosenvold |
|
Add ValidatingObjectInputStream for controlled deserialization. Fixes IO-487. |
bdelacretaz |
|
adds an endOfFileReached method to the TailerListener. Fixes IO-446. Thanks to Jeffrey Barrus. |
krosenvold |
|
FilenameUtils should handle embedded null bytes. Fixes IO-484. Thanks to Philippe Arteau. |
krosenvold |
|
Changed/Corrected algorithm for waitFor. Fixes IO-481. |
krosenvold |
|
Support for additional encodings in ReversedLinesFileReader. Fixes IO-471. Thanks to Leandro Reis. |
krosenvold |
|
BOMInputStream.skip returns wrong count if stream contains no BOM. Fixes IO-428. Thanks to Stefan Gmeiner. |
krosenvold |
|
Setter method for threshold on ThresholdingOutputStream. Fixes IO-425. Thanks to Craig Swank. |
krosenvold |
|
FileUtils.waitFor(...) swallows thread interrupted status. Fixes IO-488. Thanks to Björn Buchner. |
krosenvold |
|
Support for symlinks with missing target. Added support for JDK7 symlink features when present. Fixes IO-452. Thanks to David Standish. |
krosenvold |
|
Added testcase to show this was fixed with IO-423. Fixes IO-466. |
krosenvold |
|
Correct exception message in FileUtils.getFile(File, String...). Fixes IO-479. Thanks to Zhouce Chen. |
sebb |
|
Introduce new class AppendableOutputStream. Fixes IO-406. Thanks to Niall Pemberton. |
britter |
|
Update to JUnit 4.12. Fixes IO-465. Thanks to based2. |
britter |
|
IOExceptionWithCause no longer needed. Fixes IO-462. |
sebb |
|
Add WindowsLineEndingInputStream and UnixLineEndingInputStream. Fixes IO-459. Thanks to Kristian Rosenvold. |
olamy |
|
Add a BoundedReader, a wrapper that can be used to constrain access
to an underlying stream when used with mark/reset -
to avoid overflowing the mark limit of the underlying buffer. Fixes IO-457. Thanks to Kristian Rosenvold. |
olamy |
|
Regression in FileUtils.readFileToString from 2.0.1. Fixes IO-453. Thanks to Steven Christou. |
sebb |
|
ant test fails - resources missing from test classpath. Fixes IO-451. Thanks to David Standish. |
sebb |
|
Document that FileUtils.deleteDirectory, directoryContains and cleanDirectory
may throw an IllegalArgumentException in case the passed directory does not
exist or is not a directory. Fixes IO-435. Thanks to Dominik Stadler. |
tn |
|
Add API IOUtils.closeQuietly(Closeable...). Fixes IO-426. |
ggregory |
|
Javadoc fixes, mostly to appease 1.8.0. Fixes IO-424. Thanks to Ville Skyttä. |
ggregory |
|
Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets. Fixes IO-422. |
ggregory |
|
Readfully() That Returns A Byte Array. Fixes IO-410. Thanks to Beluga Behr. |
sebb |
|
Overload IOUtils buffer methods to accept buffer size. Fixes IO-395. Thanks to Beluga Behr. |
brentworden |
|
FileUtils.sizeOfDirectory can throw IllegalArgumentException. Fixes IO-389. Thanks to Austin Doupnik. |
sebb |
|
FileUtils.sizeOfDirectoryAsBigInteger can overflow.
Ensure that recursive calls all use BigInteger. Fixes IO-390. |
sebb |
|
Chunked IO for large arrays.
Added writeChunked(byte[], OutputStream) and writeChunked(char[] Writer)
Added ChunkedOutputStream, ChunkedWriter. Fixes IO-382. |
sebb |
|
FileUtils.doCopyFile can potentially loop forever
Exit loop if no data to copy. Fixes IO-385. |
sebb |
|
FileUtils.doCopyFile caches the file size; needs to be documented
Added Javadoc; show file lengths in exception message. Fixes IO-383. |
sebb |
|
Convert IOCase to a Java 1.5+ Enumeration
[N.B. this is binary compatible]. Fixes IO-239. |
sebb |
|
Add Methods for Buffering Streams/Writers To IOUtils
Added overloaded buffer() methods - see also IO-330. Fixes IO-233. |
sebb |
|
IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output
Added overloaded buffer() methods - see also IO-233. Fixes IO-330. |
sebb |
|
Add FileUtils.copyInputStreamToFile API with option to leave the source open.
See copyInputStreamToFile(final InputStream source, final File destination, boolean closeSource). Fixes IO-381. |
ggregory |
|
FileUtils.copyInputStreamToFile should document it closes the input source. Fixes IO-380. Thanks to claudio_ch. |
sebb |
|
Tailer erroneously considers file as new.
Fix to use file.lastModified() rather than System.currentTimeMillis(). Fixes IO-279. |
sebb |
|
CharSequenceInputStream#reset() behaves incorrectly in case when buffer size is not dividable by data size.
Fix code so skip relates to the encoded bytes; reset now re-encodes the data up to the point of the mark. Fixes IO-356. |
sebb |
|
CharSequenceInputStream - add tests for available()
Fix code so it really does reflect a minimum available. Fixes IO-379. |
sebb |
|
getPrefixLength returns null if filename has leading slashes
Javadoc: add examples to show correct behavior; add unit tests. Fixes IO-328. |
sebb |
|
FileUtils.listFilesAndDirs includes original dir in results even when it doesn't match filter
Javadoc: clarify that original dir is included in the results. Fixes IO-299. |
sebb |
|
Add ByteArrayOutputStream.toInputStream(). Fixes IO-346. |
sebb |
|
ClassLoaderObjectInputStream does not handle primitive typed members. Fixes IO-368. |
sebb |
|
A constant for holding the BOM character (U+FEFF). Fixes IO-341. |
sebb |
|
Deprecate all methods that use the default encoding. Fixes IO-314. |
sebb |
|
When a file is rotated, finish reading previous file prior to starting new one. Fixes IO-338. |
sebb |
|
Commons IO Tailer does not respect UTF-8 Charset. Fixes IO-354. |
sebb |
|
What should happen in FileUtils.sizeOf[Directory] when an overflow takes place?
Added Javadoc. Fixes IO-323. |
sebb |
|
FileUtils.moveDirectory can produce misleading error message on failure. Fixes IO-372. |
sebb |
|
FilenameUtils.splitOnTokens(String text) check for '**' could be simplified. Fixes IO-375. |
sebb |
|
WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors. Fixes IO-374. |
sebb |
|
IOUtils.contentEquals* methods returns false if input1 == input2, should return true. Fixes IO-362. Thanks to mmadson, ggregory. |
ggregory |
|
Add API FileUtils.forceMkdirsParent(). Fixes IO-361. |
ggregory |
|
Add API Charsets.requiredCharsets(). Fixes IO-360. |
ggregory |
|
Add IOUtils.skip and skipFully(ReadableByteChannel, long). Fixes IO-359. Thanks to yukoba. |
ggregory |
|
Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). Fixes IO-358. Thanks to yukoba. |
ggregory |
|
[Tailer] InterruptedException while the thread is sleeping is silently ignored. Fixes IO-357. Thanks to mortenh. |
ggregory |
|
Add API IOUtils.copy(InputStream, OutputStream, int). Fixes IO-353. Thanks to ggregory. |
ggregory |
|
Add API with array offset and length argument to FileUtils.writeByteArrayToFile. Fixes IO-349. Thanks to scop. |
ggregory |
|
Spelling fixes. Fixes IO-352. Thanks to scop. |
ggregory |
|
Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. Fixes IO-348. Thanks to plcstpierre. |
ggregory |
|
Supply a hook method allowing Tailer actively determining stop condition. Fixes IO-345. Thanks to mkresse. |
ggregory |
|
Improper Javadoc comment for FilenameUtils.indexOfExtension. Fixes IO-436. Thanks to christoph.schneegans. |
ggregory |
|
Make IOUtils.EOF public and reuse it in various classes. Fixes IO-437. |
ggregory |
Release 2.4 – 2012-06-12
Type |
Changes |
By |
|
org.apache.commons.io.comparator Javadoc is inconsistent with real code. Fixes IO-343. Thanks to igorlash. |
ggregory |
|
Yottabyte (YB) incorrectly defined in FileUtils. Fixes IO-336. Thanks to rleavelle. |
ggregory |
|
Tailer locks file from deletion/rename on Windows. Fixes IO-269. Thanks to sebb. |
ggregory |
|
Tailer erroneously considers file as new. Fixes IO-279. Thanks to Sergio Bossa, Chris Baron. |
sebb |
|
Tailer#readLines - incorrect CR handling. Fixes IO-335. |
sebb |
|
FileUtils.toURLs throws NPE for null parameter; document the behavior. Fixes IO-334. |
sebb |
|
Export OSGi packages at version 1.x in addition to 2.x. Fixes IO-333. Thanks to fmeschbe. |
ggregory |
|
Add XmlStreamReader support for UTF-32. Fixes IO-320. Thanks to ggregory. |
ggregory |
|
BOMInputStream wrongly detects UTF-32LE_BOM files as UTF-16LE_BOM files in method getBOM(). Fixes IO-331. Thanks to ggregory. |
ggregory |
|
Improve tailer's reading performance. Fixes IO-332. Thanks to liangly. |
ggregory |
|
Improve Tailer performance with buffered reads (see IO-332). Fixes IO-279. |
ggregory |
|
FileUtils.writeLines uses unbuffered IO. Fixes IO-329. Thanks to tivv. |
ggregory |
|
Add byteCountToDisplaySize(BigInteger). Fixes IO-327. Thanks to ggregory. |
ggregory |
|
Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. Fixes IO-326. Thanks to ggregory, kinow. |
ggregory |
|
Add IOUtils.toByteArray methods to work with URL and URI. Fixes IO-325. Thanks to raviprak. |
ggregory |
|
Add missing Charset sister APIs to method that take a String charset name. Fixes IO-324. Thanks to raviprak. |
ggregory |
|
FileUtils.sizeOfDirectory follows symbolic links. Fixes IO-319. Thanks to raviprak. |
ggregory |
Release 2.3 – 2012-April-10
Type |
Changes |
By |
|
Add and use class Charsets. Fixes IO-322. Thanks to ggregory. |
ggregory |
|
ByteOrderMark UTF_32LE is incorrect. Fixes IO-321. Thanks to ggregory. |
ggregory |
|
Add Charset sister APIs to method that take a String charset name. Fixes IO-318. Thanks to ggregory. |
ggregory |
Release 2.2 – 2012-March-26
Type |
Changes |
By |
|
Add IOUtils.toBufferedReader(Reader). Fixes IO-313. Thanks to ggregory. |
ggregory |
|
Allow applications to provide buffer (or size) for copyLarge methods. Fixes IO-308. Thanks to Manoj Mokashi. |
sebb |
|
IOUtils.read(InputStream/Reader) ignores the offset parameter. Fixes IO-311. Thanks to Robert Muir. |
sebb |
|
CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize) ignores bufferSize. Fixes IO-312. |
sebb |
|
New copyLarge() method in IOUtils that takes additional offset, length arguments. Fixes IO-305. Thanks to Manoj Mokashi. |
sebb |
|
FileUtils.moveDirectoryToDirectory removes source directory if destination is a sub-directory. Fixes IO-300. |
sebb |
|
ReaderInputStream#read(byte[] b, int off, int len) should check for valid parameters. Fixes IO-307. |
sebb |
|
Use terabyte (TB), petabyte (PB) and exabyte (EB) in FileUtils.byteCountToDisplaySize(long size). Fixes IO-287. Thanks to Ron Kuris, Gary Gregory. |
bayard |
|
ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0. Fixes IO-306. |
sebb |
|
FileUtils.listFiles() doesn't return directories. Fixes IO-173. Thanks to Marcos Vinícius da Silva. |
sebb |
|
"FileUtils#deleteDirectoryOnExit(File)" does not work. Fixes IO-276. Thanks to nkami. |
sebb |
|
BoundedInputStream.read() treats max differently from BoundedInputStream.read(byte[]...). Fixes IO-273. Thanks to sebb. |
sebb |
|
CharSequenceInputStream to efficiently stream content of a CharSequence. Fixes IO-297. Thanks to Oleg Kalnichevski. |
sebb |
|
ReaderInputStream optimization: more efficient reading of small chunks of data. Fixes IO-296. Thanks to Oleg Kalnichevski. |
sebb |
|
Various methods of class 'org.apache.commons.io.FileUtils' incorrectly suppress 'java.io.IOException'. Fixes IO-298. Thanks to Christian Schulte. |
sebb |
|
The second constructor of Tailer class does not pass 'delay' to the third one. Fixes IO-304. Thanks to liangly. |
ggregory |
|
TeeOutputStream does not call branch.close() when main.close() throws an exception. Fixes IO-303. Thanks to fabian.barney. |
ggregory |
|
ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without BOM multiple times. Fixes IO-302. Thanks to jsteuerwald, detinho. |
ggregory |
|
Add IOUtils.closeQuietly(Selector) necessary. Fixes IO-301. Thanks to kaykay.unique. |
ggregory |
|
IOUtils.closeQuietly() should take a ServerSocket as a parameter. Fixes IO-292. Thanks to sebb. |
sebb |
|
Add read/readFully methods to IOUtils. Fixes IO-290. Thanks to sebb. |
sebb |
|
Supply a ReversedLinesFileReader. Fixes IO-288. Thanks to Georg Henzler. |
sebb |
|
Add new function FileUtils.directoryContains. Fixes IO-291. Thanks to ggregory. |
ggregory |
|
FileUtils.contentEquals and IOUtils.contentEquals - Add option to ignore "line endings"
Added contentEqualsIgnoreEOL methods to both classes. Fixes IO-275. Thanks to CJ Aspromgos. |
sebb |
Release 2.1 – 2011-Sep-28
Type |
Changes |
By |
|
Use standard Maven directory layout. Fixes IO-285. Thanks to ggregory. |
ggregory |
|
Add IOUtils API toString for URL and URI to get contents. Fixes IO-284. Thanks to ggregory. |
ggregory |
|
Add API FileUtils.copyFile(File input, OutputStream output). Fixes IO-282. Thanks to ggregory. |
ggregory |
|
Dubious use of mkdirs() return code. Fixes IO-280. Thanks to sebb. |
sebb |
|
ReaderInputStream enters infinite loop when it encounters an unmappable character. Fixes IO-277. |
|
|
FileUtils.moveFile() Javadoc should specify FileExistsException thrown. Fixes IO-264. |
|
|
FileAlterationObserver has no getter for FileFilter. Fixes IO-262. |
|
|
Add FileUtils.getFile API with varargs parameter. Fixes IO-261. |
|
|
ClassLoaderObjectInputStream does not handle Proxy classes. Fixes IO-260. |
|
|
FileAlterationMonitor.stop(boolean allowIntervalToFinish). Fixes IO-259. |
|
|
Add new APPEND parameter for writing string into files. Fixes IO-182. |
|
|
Tailer returning partial lines when reaching EOF before EOL. Fixes IO-274. Thanks to Frank Grimes. |
sebb |
|
FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows). Fixes IO-266. Thanks to Igor Smereka. |
sebb |
|
FileSystemUtils.freeSpaceKb throws exception for Windows volumes with no visible files.
Improve coverage by also looking for hidden files. Fixes IO-263. Thanks to Gil Adam. |
sebb |
|
Add new read method "toByteArray" to handle InputStream with known size. Fixes IO-251. Thanks to Marco Albini. |
sebb |
Release 2.0.1 – 2010-Dec-26
Type |
Changes |
By |
|
TODO: Convert RELEASE-NOTES.txt from 2.0.1? |
|
Release 2.0 – 2010-Oct-18
Type |
Changes |
By |
|
TODO: Convert RELEASE-NOTES.txt from 2.0? |
|
Release 1.4 – 2008-Jan-21
Type |
Changes |
By |
|
TODO: Convert RELEASE-NOTES.txt from 1.4? |
|
Release 1.3.2 – 2007-Jul-02
Type |
Changes |
By |
|
Some tests, which are implicitly assuming a Unix-like file
system, are now skipped on Windows. Fixes IO-115. |
jochen |
|
Created the FileCleaningTracker, basically a non-static
version of the FileCleaner, which can be controlled by
the user. Fixes IO-116. |
jochen |
|
EndianUtils - both readSwappedUnsignedInteger(...) methods could
return negative numbers due to int/long casting. Fixes IO-117. Thanks to Hiroshi Ikeda. |
bayard |
|