File apache-commons-io.changes of Package apache-commons-io
-------------------------------------------------------------------
Fri Feb 6 12:48:41 UTC 2026 - Fridrich Strba <fstrba@suse.com>
- Upgrade to 2.21.0
* New features
+ FileUtils#byteCountToDisplaySize() supports Zettabyte,
Yottabyte, Ronnabyte and Quettabyte
+ Add org.apache.commons.io.FileUtils.ONE_RB
+ Add org.apache.commons.io.FileUtils.ONE_QB
+ Add org.apache.commons.io.output.ProxyOutputStream
.writeRepeat(byte[], int, int, long)
+ Add org.apache.commons.io.output.ProxyOutputStream
.writeRepeat(byte[], long)
+ Add org.apache.commons.io.output.ProxyOutputStream
.writeRepeat(int, long)
+ Add length unit support in FileSystem limits
+ Add IOUtils.toByteArray(InputStream, int, int) for safer
chunked reading with size validation
+ Add org.apache.commons.io.file.PathUtils.getPath(String,
String)
+ Add org.apache.commons.io.channels
.ByteArraySeekableByteChannel
+ Add IOIterable.asIterable()
+ Add NIO channel support to 'AbstractStreamBuilder'
+ Add CloseShieldChannel to close-shielded NIO Channels
+ Added IOUtils.checkFromIndexSize as a Java 8 backport of
Objects.checkFromIndexSize
* Fixed Bugs
+ When testing on Java 21 and up, enable
-XX:+EnableDynamicAgentLoading
+ When testing on Java 24 and up, don't fail
FileUtilsListFilesTest for a different behavior in the JRE
+ ValidatingObjectInputStream does not validate dynamic proxy
interfaces
+ BoundedInputStream.getRemaining() now reports Long.MAX_VALUE
instead of 0 when no limit is set
+ BoundedInputStream.available() correctly accounts for the
maximum read limit
+ Deprecate IOUtils.readFully(InputStream, int) in favor of
toByteArray(InputStream, int)
+ IOUtils.toByteArray(InputStream) now throws IOException on
byte array overflow
+ Javadoc general improvements
+ IOUtils.toByteArray() now throws EOFException when not enough
data is available
+ Fix IOUtils.skip() usage in concurrent scenarios
+ [javadoc] Fix XmlStreamReader Javadoc to indicate the correct
class that is built
* Changes
+ Bump org.apache.commons:commons-parent from 85 to 91
+ [test] Bump commons-codec:commons-codec from 1.18.0 to 1.19.0
+ [test] Bump commons.bytebuddy.version from 1.17.6 to 1.17.8
+ [test] Bump org.apache.commons:commons-lang3 from 3.18.0 to
3.19.0
* Removed
+ Inline private constant field
ProxyInputStream.exceptionHandler
-------------------------------------------------------------------
Fri Feb 6 12:48:07 UTC 2026 - Fridrich Strba <fstrba@suse.com>
- Upgrade to 2.20.0
* New features
+ Add org.apache.commons.io.file.CountingPathVisitor
.accept(Path, BasicFileAttributes)
+ Add org.apache.commons.io.Charsets.isAlias(Charset, String)
+ Add org.apache.commons.io.Charsets.isUTF8(Charset)
+ Add org.apache.commons.io.Charsets.toCharsetDefault(String,
Charset)
+ Add Tailer ignoreTouch option
* Fixed Bugs
+ [javadoc] Rename parameter of ProxyOutputStream.write(int)
+ CopyDirectoryVisitor ignores fileFilter
+ org.apache.commons.io.build.AbstractOrigin.getReader(Charset)
now maps a null Charset to the default Charset
+ org.apache.commons.io.build.AbstractOrigin
.AbstractRandomAccessFileOrigin.getReader(Charset) now maps a
null Charset to the default Charset
+ org.apache.commons.io.build.AbstractOrigin.ByeArrayOrigin
.getReader(Charset) now maps a null Charset to the default
Charset
+ org.apache.commons.io.build.AbstractOrigin.InputStreamOrigin
.getReader(Charset) now maps a null Charset to the default
Charset
+ org.apache.commons.io.build.AbstractOrigin.getWriter(Charset)
now maps a null Charset to the default Charset
+ org.apache.commons.io.build.AbstractOrigin
.AbstractRandomAccessFileOrigin.getWriter(Charset) now maps a
null Charset to the default Charset
+ org.apache.commons.io.build.AbstractOrigin.OutputStreamOrigin
.getWriter(Charset) now maps a null Charset to the default
Charset
+ FileUtils.readLines(File, Charset) now maps a null Charset to
the default Charset
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashCr" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.WindowsLineEndingInputStream,
org.apache.commons.io.input.WindowsLineEndingInputStream] At
WindowsLineEndingInputStream.java:[line 77] Another occurrence
at WindowsLineEndingInputStream.java:[line 81]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashCr" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.WindowsLineEndingInputStream] At
WindowsLineEndingInputStream.java:[line 112]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashLf" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.WindowsLineEndingInputStream] At
WindowsLineEndingInputStream.java:[line 113]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashLf" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.UnixLineEndingInputStream] At
UnixLineEndingInputStream.java:[line 75]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atEos" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.UnixLineEndingInputStream] At
UnixLineEndingInputStream.java:[line 120]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashCr" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.UnixLineEndingInputStream] At
UnixLineEndingInputStream.java:[line 124]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"atSlashLf" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.UnixLineEndingInputStream] At
UnixLineEndingInputStream.java:[line 125]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"closed" in one thread may not yield the value of the most
recent write from another thread
[org.apache.commons.io.input.ProxyInputStream] At
ProxyInputStream.java:[line 233]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ Fix SpotBugs [ERROR] Medium: Shared primitive variable
"propagateClose" in one thread may not yield the value of the
most recent write from another thread
[org.apache.commons.io.input.BoundedInputStream] At
BoundedInputStream.java:[line 555]
AT_STALE_THREAD_WRITE_OF_PRIMITIVE
+ QueueInputStream reads all but the first byte without waiting
+ Javadoc fixes and improvements
+ Avoid NPE in org.apache.commons.io.filefilter.WildcardFilter
.accept(File)
+ FileUtils.forceDelete can delete a broken symlink again
+ Fix infinite loop in AbstractByteArrayOutputStream
* Changes
+ Bump commons.bytebuddy.version from 1.17.5 to 1.17.6
+ Bump org.apache.commons:commons-parent from 81 to 85
+ Bump org.apache.commons:commons-lang3 from 3.17.0 to 3.18.0
-------------------------------------------------------------------
Fri Feb 6 12:46:24 UTC 2026 - Fridrich Strba <fstrba@suse.com>
- Upgrade to 2.19.0
* New features
+ Add ThrottledInputStream.Builder.setMaxBytes(long,
ChronoUnit)
+ Add IOIterable
+ ReversedLinesFileReader implements IOIterable<String>
+ Add AbstractByteArrayOutputStream.write(CharSequence,
Charset)
+ Add AbstractByteArrayOutputStream.write(byte[])
+ Add RandomAccessFileOutputStream.getRandomAccessFile()
+ Add ProxyInputStream.setReference(InputStream), was
package-private setIn(InputStream)
+ Add ProxyOutputStream.setReference(OutputStream)
+ Add RandomAccessFileInputStream.copy(long, long,
OutputStream)
+ Add ProxyOutputStream.Builder
+ Add ByteOrderMark.matches(int[])
+ Add BrokenOutputStream.BrokenOutputStream(Function<String>,
Throwable>) and deprecate Supplier<String> constructor
+ Add IOBooleanSupplier
+ Add Uncheck.getAsBoolean(IOBooleanSupplier)
+ Add FileChannels.contentEquals(SeekableByteChannel,
SeekableByteChannel, int)
+ Add FileChannels.contentEquals(ReadableByteChannel,
ReadableByteChannel, int)
+ Add SimplePathVisitor.AbstractBuilder
+ Add CountingPathVisitor.AbstractBuilder and
CountingPathVisitor.Builder
+ Add AccumulatorPathVisitor.Builder and builder()
+ Add PathUtils.contentEquals(FileSystem, FileSystem)
* Fixed Bugs
+ Deprecate constructor Counters.Counters() to be private in
4.0
+ Deprecate constructor Charsets.Charsets() to be private in
4.0
+ Pick up maven-antrun-plugin version from parent POM
org.apache:apache
+ Javadoc is missing its Overview page
+ Remove -nouses directive from maven-bundle-plugin. OSGi
package imports now state 'uses' definitions for package
imports, this doesn't affect JPMS (from
org.apache.commons:commons-parent:80)
+ Deprecate DeferredFileOutputStream.getStream() in favor of
getOutputStream()
+ Improve Javadoc for a BoundedInputStream builder() throwing
IOException
+ Improve Javadoc for all implementations of
AbstractOriginSupplier#get()
+ The Consumer to IOUtils.closeQuietly(Closeable, Consumer) now
accepts Exception, not just IOException
+ The Consumer to IOUtils.close(Closeable, IOConsumer) now
accepts wrapped Exception, not just IOException
+ Use Uncheck.getAsBoolean(IOBooleanSupplier) to avoid boxing
and unboxing of boolean values
+ Avoid unnecessary boxing and unboxing of long values in
FileUtils.sizeOf(File)
+ Avoid unnecessary boxing and unboxing of int values in
UncheckedBufferedReader.read()
+ Avoid unnecessary boxing and unboxing of int values in
UncheckedFilterInputStream.available() and read()
+ Avoid unnecessary boxing and unboxing of int values in
UncheckedFilterReader.read()
+ FileChannels.contentEquals(FileChannel, FileChannel, int) can
return false when comparing a non-blocking channel
+ Deprecate FileChannels.contentEquals(FileChannel, FileChannel,
int) in favor of FileChannels
.contentEquals(SeekableByteChannel, SeekableByteChannel, int)
+ Improve performance of IOUtils.contentEquals(InputStream,
InputStream) by about 13%
+ PathUtils.copyFileToDirectory() across file systems
+ IOUtils.contentEquals is incorrect when InputStream.available
under-reports
+ java.lang.ArithmeticException: long overflow java.lang.Math
.addExact(Math.java:932) at org.apache.commons.io.file
.attribute.FileTimes.ntfsTimeToFileTime(FileTimes.java:164).
See also https://issues.apache.org/jira/browse/MDEP-978
+ java.lang.ArithmeticException: long overflow java.lang.Math
.addExact(Math.java:932) at org.apache.commons.io.file
.attribute.FileTimes.ntfsTimeToDate(long)
+ FileTimes.toNtfsTime(*) methods can overflow result values
+ Fix Javadoc for ChunkedOutputStream.Builder
+ General Javadoc improvements
+ Calling QueueInputStream.QueueInputStream(null) maps to the
same kind of default blocking queue as
QueueInputStream.Builder.setBlockingQueue(null)
+ CopyDirectoryVisitor creates incorrect file names when
copying between different file systems that use different file
system separators ("/" versus "\"); fixes
PathUtils.copyDirectory(Path, Path, CopyOption...)
+ ThreadUtils.sleep(Duration) should handle the underlying OS
time changing
* Changes
+ Bump commons.bytebuddy.version from 1.15.10 to 1.17.5
+ Bump commons-codec:commons-codec from 1.17.1 to 1.18.0
+ Bump org.apache.commons:commons-parent from 78 to 81
-------------------------------------------------------------------
Fri Jan 24 15:08:26 UTC 2025 - Gus Kenion <gus.kenion@suse.com>
- Upgrade to 2.18.0
* New features
+ Add @FunctionalInterface to ClassNameMatcher.
+ Add ValidatingObjectInputStream.Builder and
ValidatingObjectInputStream.builder().
+ Add a "Safe Deserialization" section to the User Guide for
the site.
+ Add IORandomAccessFile.
+ Add RandomAccessFileMode.io(String).
+ Add FileAlterationObserver.Builder() and deprecate most
constructors.
+ Add IOUtils.readLines(CharSequence).
+ Add ValidatingObjectInputStream.ObjectStreamClassPredicate to
allow configuration reuse.
+ Add RandomAccessFileMode.accept(Path,
IOConsumer<RandomAccessFile>).
+ Add RandomAccessFileMode.apply(Path,
IOFunction<RandomAccessFile>, T).
+ Add IOIntConsumer.
+ Add ProxyInputStream.AbstractBuilder. Supports setting a
consumer for ProxyInputStream.afterRead(int).
+ Add support to AutoCloseInputStream for setting a consumer
for ProxyInputStream.afterRead(int).
+ Add support to BOMInputStream for setting a consumer for
ProxyInputStream.afterRead(int).
+ Add support to BoundedInputStream for setting a consumer for
ProxyInputStream.afterRead(int).
+ Add support to BoundedInputStream for setting a consumer for
BoundedInputStream.onMaxLength(long, long).
+ Add support to ChecksumInputStream for setting a consumer for
ProxyInputStream.afterRead(int).
+ Add support to ThrottledInputStream for setting a consumer
for ProxyInputStream.afterRead(int).
+ Add support to ObservableInputStream for setting a consumer
for ProxyInputStream.afterRead(int).
+ Add support to MessageDigestCalculatingInputStream for
setting a consumer for ProxyInputStream.afterRead(int).
+ Add support to MessageDigestInputStream for setting a
consumer for ProxyInputStream.afterRead(int).
* Fixed Bugs
+ Clean ups in unit tests.
+ Fix some Javadoc issues.
+ RandomAccessFileMode.toString() is more helpful for debugging
when it inherits from Enum.
+ Fix implicit narrowing conversion in compound assignment in
UnsynchronizedBufferedReader.skip(long).
+ IO-860: Missing reserved file names in FileSystem.WINDOWS
(superscript digits for COM and LPT).
+ IO-856: FileUtils.listFiles(final File, String[], boolean)
can throw NoSuchFileException #697, #699.
+ IO-859: FileUtils.forceDelete on non-existent file on Windows
throws IOException rather than FileNotFoundException.
+ Use Unicode escapes for superscript characters. #701.
+ IO-863: Recent incompatible change to FileUtils.listFiles re
extensions, see also IO-856.
+ IO-857: Javadoc: Update details for PathUtils "clean"
behavior.
* Changes
+ Bump org.apache.commons:commons-parent from 74 to 78 #670,
#676, #679, #688.
+ Bump commons.bytebuddy.version from 1.15.1 to 1.15.10 #672,
#673, #685, #686, #694, #696, #698.
+ Update AbstractStreamBuilder getters from protected to
public.
-------------------------------------------------------------------
Fri Oct 4 19:23:58 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Upgrade to 2.17.0
* New features:
+ Add IOIterator.adapt(Iterable)
+ Add getInputStream() for 'https' and 'http' in URIOrigin
#630. Fixes IO-831
+ Add IOSupplier.getUnchecked()
+ Add CloseShieldInputStream.systemIn(InputStream)
+ Add NullInputStream.init()
+ Add AbstractInputStream and refactor duplicate code
+ Add UnsynchronizedReader
+ Add UnsynchronizedBufferedReader
* Fixes:
+ FileUtilsWaitForTest does not test anything useful.
Fixes IO-858.
+ Add missing unit tests
+ FileUtils.lastModifiedFileTime(File) calls
Objects.requireNonNull() on the wrong object
+ PathUtils.deleteOnExit(Path) calls Objects.requireNonNull()
on the wrong object
+ Deprecate LineIterator.nextLine() in favor of next()
+ Fix PMD UnnecessaryFullyQualifiedName
+ Add test for CircularByteBuffer clear() #620
+ PathUtils.isPosix(Path, LinkOption...) should return false on
null input
+ AutoCloseInputStream(InputStream) uses
ClosedInputStream.INSTANCE when its input is null
+ Avoid NullPointerException in ProxyInputStream.available()
when the underlying input stream is null
+ Avoid NullPointerException in ProxyInputStream.markSupported()
when the underlying input stream is null
+ Avoid NullPointerException in ProxyInputStream.mark(int) when
the underlying input stream is null
+ BufferedFileChannelInputStream.available() returns 0 before
any reads
+ BufferedFileChannelInputStream.available() should return 0
instead of -1 at the end of the stream
+ BufferedFileChannelInputStream.available() should return 0
when the stream is closed instead of throwing an exception
+ CharSequenceInputStream.available() should return 0 after the
stream is closed
+ BoundedInputStream.available() should return 0 when the
stream is closed
+ CircularInputStream.available() should return 0 when the
stream is closed
+ InfiniteCircularInputStream.available() should return 0 when
the stream is closed
+ ChecksumInputStream(InputStream, Checksum, long, long) should
fail-fast on null Checksum input
+ Deprecate NullInputStream.INSTANCE in favor of constructors
+ NullInputStream.available() should return 0 after the stream
is closed
+ MemoryMappedFileInputStream.available() should return 0 after
the stream is closed
+ RandomAccessFileInputStream.available() should return 0 after
the stream is closed
+ ReaderInputStream.available() should return 0 after the
stream is closed
+ AutoCloseInputStream does not call handleIOException() on
close() when the proxied stream throws an IOException
+ BoundedInputStream does not call handleIOException() on
close() when the proxied stream throws an IOException
+ NullInputStream.read(*) should throw IOException when it is
closed
+ NullInputStream.read(byte[]) should return 0 when the input
byte array in length 0
+ NullInputStream.read(byte[], int, int) should return 0 when
the input byte array in length 0 or requested length is 0
+ MarkShieldInputStream.read(*) should throw IOException when
it is closed
+ Replace deprecated constant FileFileFilter.FILE in Javadoc
#657
+ Pick up exec-maven-plugin version from parent POM
* Updates:
+ Bump tests commons.bytebuddy.version from 1.14.13 to 1.15.1
#615, #621, #631, #635, #642, #658, #663, #665
+ Bump tests commons-codec:commons-codec from 1.16.1 to 1.17.1
#644
+ Bump org.codehaus.mojo:exec-maven-plugin from 3.2.0 to 3.4.1
#632, #652, #659
+ Bump org.apache.commons:commons-parent from 69 to 74 #628,
#637, #649, #661, #664
+ Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0
#645, #653, #666
-------------------------------------------------------------------
Mon Apr 29 13:12:59 UTC 2024 - Gus Kenion <gus.kenion@suse.com>
- Upgrade to 2.16.1
* Fixes:
+ Reimplement FileSystemUtils using NIO.
+ FileSystemUtils no longer throws IllegalStateException. Fixes
IO-851.
+ Avoid possible NullPointerException in
FileUtils.listAccumulate(File, IOFileFilter, IOFileFilter,
FileVisitOption...).
+ BoundedInputStream.reset() not updating count. Fixes IO-853.
+ ThresholdingOutputStream: a negative threshold should behave
like a zero threshold and trigger the event on the first
write #609. Fixes IO-854.
* Updates:
+ Bump commons.bytebuddy.version from 1.14.12 to 1.14.13 #605.
+ Bump org.apache.commons:commons-parent from 67 to 69 #608.
- Update apache-commons-io-build.xml for new version
- Includes changes from 2.16.0
* Fixes:
+ Fix and re-enable testSkip_RequiredCharsets #518.
+ SymbolicLineFileFilter documentation fixes. Fixes IO-824.
+ CharSequenceInputStream.reset() only works once #520. Fixes
IO-795.
+ Finish TODO on CharSequenceInputStream #540. Fixes IO-795.
+ Add byte array size validation for methods in EndianUtils
#521. Fixes IO-825.
+ Add missing test case CircularByteBufferTest. Fixes IO-825.
+ Make CharSequenceInputStream.available() more correct in the
face of multibyte encodings #525. Fixes IO-781.
+ Remove unreachable code in AbstractIOFileFilterTest #526.
Fixes IO-781.
+ Rationalize and unify checking for existence of files and
directories #529. Fixes IO-808.
+ Avoid NullPointerException in IOCase.checkEquals(String,
String) on null input.
+ Avoid NullPointerException in
CanExecuteFileFilter.accept(File) on null input.
+ Avoid NullPointerException in
CanExecuteFileFilter.accept(Path, BasicFileAttributes) on
null input.
+ Avoid NullPointerException in CanReadFileFilter.accept(File)
on null input.
+ Avoid NullPointerException in CanReadFileFilter.accept(Path,
BasicFileAttributes) on null input.
+ Avoid NullPointerException in CanWriteFileFilter.accept(File)
on null input.
+ Avoid NullPointerException in CanWriteFileFilter.accept(Path,
BasicFileAttributes) on null input.
+ Avoid NullPointerException in
DirectoryFileFilter.accept(File) on null input.
+ Avoid NullPointerException in
DirectoryFileFilter.accept(Path, BasicFileAttributes) on null
input.
+ Avoid NullPointerException in EmptyFileFilter.accept(File) on
null input.
+ Avoid NullPointerException in EmptyFileFilter.accept(Path,
BasicFileAttributes) on null input.
+ Avoid NullPointerException in FileFileFilter.accept(File) on
null input.
+ Avoid NullPointerException in FileFileFilter.accept(Path,
BasicFileAttributes) on null input.
+ Avoid NullPointerException in HiddenFileFilter.accept(File)
on null input.
+ Avoid NullPointerException in HiddenFileFilter.accept(Path,
BasicFileAttributes) on null input.
+ Avoid NullPointerException in IOCase.checkIndexOf(String,
int, String) on null input.
+ Avoid NullPointerException in
IOCase.checkRegionMatches(String, int, String) on null input.
+ BoundedInputStream.getCount() should not count EOF.
+ Modernize temporary file creation and deletion in
DeferredFileOutputStreamTest #535.
+ Add PathMatcher to IOFileFilter class Javadoc #536.
+ Fix CharSequenceInputStream coding exception handling #537.
Fixes IO-781.
+ Deprecate int CountingInputStream#getCount() in favor of long
CountingInputStream#getByteCount(). Fixes IO-781.
+ Deprecate CountingInputStream.resetCount() in favor of
resetByteCount(). Fixes IO-828.
+ Deprecate CountingInputStream.getMaxLength() in favor of
getMaxCount()). Fixes IO-828.
+ NullInputStream breaks InputStream's read method contract.
Fixes IO-818.
+ Javadoc shouldn't reference 1.x behavior #539.
+ Don't decode and reencode characters in a potentially
different charset in
AbstractOrigin.CharSequenceOrigin.getReader(Charset). Fixes
IO-829.
+ Let subclasses of CountingInputStream.afterRead(int) throw
IOException.
+ Characterization test for broken symlinks when copying
directories #547. Fixes IO-807.
+ ClosedInputStream.read(byte[], int, int) does not always
return -1.
+ ClosedOutputStream.write(byte[], int, int) does not always
throw IOException.
+ XmlStreamReader can't parse an XML document with a multi-line
prolog #550.
+ XmlStreamReader can't parse XML an document with an external
parsed entity prolog.
+ Update FileNameUtils Javadoc #554. Fixes IO-836.
+ Copy symlinks, not the files the symlinks point to #558.
Fixes IO-807.
+ Pickup apache-rat-plugin version from parent POM.
+ Add test for copying a symlink
FileUtilsTest#testCopyFile_symLink() #564.
+ Make copyFile copy symbolic links by value rather than
reference #565.
+ Deprecate CopyUtils 0-argument constructor.
+ Deprecate EndianUtils 0-argument constructor. Fixes IO-843.
+ Deprecate FileSystemUtils 0-argument constructor.
+ Deprecate FilenameUtils 0-argument constructor.
+ Deprecate RandomAccessFiles 0-argument constructor.
+ Clarify and correct EndianUtils and SwappedDataInputStream
API doc #566.
+ Add characterization test for copying a symlinked directory
#570.
+ RandomAccessFileInputStream.builder().get() now throws ISE
instead of NPE.
+ Test links to targets outside the source directory #571.
Fixes IO-845.
+ Focus Javadoc on current version rather than past versions
#573, #574.
+ "Self-suppression not permitted" while using BrokenOutput and
BrokenInput streams with try-with-resources. Fixes IO-469.
+ Handle zero and negative thresholds #587. Fixes IO-405.
+ Deprecate CountingInputStream in favor of BoundedInputStream.
+ PathUtils.setPosixPermissions(...) only sets permissions if
needed.
+ PathUtils.setReadOnly(...) only sets permissions if needed.
+ PathUtils.deleteFile(..., DeleteOption...) only sets
permissions if needed.
+ CleaningPathVisitor only sets permissions if needed.
+ DeletingPathVisitor only sets permissions if needed.
* New features:
+ Add and use PathUtils.getFileName(Path, Function<Path, R>).
+ Add and use PathUtils.getFileNameString().
+ Make public Erase.rethrow(Throwable).
+ Add BrokenInputStream.BrokenInputStream(Throwable). Fixes
IO-826.
+ Add BrokenReader.BrokenReader(Throwable). Fixes IO-826.
+ Add BrokenOutputStream.BrokenOutputStream(Throwable). Fixes
IO-826.
+ Add BrokenWriter.BrokenWriter(Throwable). Fixes IO-826.
+ Add BoundedInputStream.getRemaining().
+ Add FileTimes.toNtfsTime(long).
+ Add FileTimes.fromUnixTime(long).
+ Add FileTimes.isUnixTime(FileTime).
+ Add FileTimes.isUnixTime(long).
+ Add FileTimes.toUnixTime(FileTime).
+ Add BrokenInputStream.Builder.
+ Add PathUtils.getExtension(Path).
+ Add PathUtils.getBaseName(Path).
+ Add ThrottledInputStream.
+ Add IORunnable.noop().
+ Add ChecksumInputStream and test #548.
+ Add AbstractStreamBuilder.getReader().
+ Add Maven property project.build.outputTimestamp for build
reproducibility.
+ Add ProxyInputStream.unwrap().
+ Add a running count and builder to BoundedInputStream.
* Updates:
+ Bump commons.bytebuddy.version from 1.14.10 to 1.14.12 #534,
#592.
+ Bump org.apache.commons:commons-parent from 65 to 67.
+ Bump commons-codec:commons-codec from 1.16.0 to 1.16.1 #583.
+ Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.2.0
#593.
-------------------------------------------------------------------
Mon Feb 19 14:58:13 UTC 2024 - Fridrich Strba <fstrba@suse.com>
- Upgrade to 2.15.1
* Fixed Bugs:
+ Fix wrong issue id in change log
+ Add test for FileChannels.contentEquals()
+ Fix FileChannels.contentEquals()
+ Fix some Javadoc issues in LineIterator and IOUtils
+ Simplify FileAlterationObserver internal processing
+ Avoid NullPointerException in RegexFileFilter
.RegexFileFilter(Pattern)
+ Avoid NullPointerException in RegexFileFilter
.accept(Path, BasicFileAttributes)
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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
+ 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]
CT_CONSTRUCTOR_THROW
+ 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]
CT_CONSTRUCTOR_THROW
- Upgrade to 2.15.0
* New features:
+ Add org.apache.commons.io.channels.FileChannels
+ Add RandomAccessFiles#contentEquals(RandomAccessFile,
RandomAccessFile)
+ Add RandomAccessFiles#reset(RandomAccessFile)
+ Add PathUtilsContentEqualsBenchmark
+ Add org.apache.commons.io.StreamIterator
+ Add MessageDigestInputStream and deprecate
MessageDigestCalculatingInputStream
* Fixed Bugs:
+ IO-815: XmlStreamReader encoding match RE is too strict
+ IO-810: Javadoc in FileUtils does not reflect code for thrown
exceptions
+ IO-812: Javadoc should mention closing Streams based on file
resources
+ IO-811: In tests, Files.walk() direct and indirect callers
fail to close the returned Stream
+ IO-811: FileUtils.listFiles(File, String[], boolean) fails to
close its internal Stream
+ IO-811: FileUtils.iterateFiles(File, String[], boolean) fails
to close its internal Stream
+ IO-811: StreamIterator fails to close its internal Stream
+ IO-814: Don't throw UncheckedIOException
+ IO-414: Don't write a BOM on every (or any) line
+ IO-814: RandomAccessFileMode.create(Path) provides a better
NullPointerException message
+ Improve performance of PathUtils.fileContentEquals(Path, Path,
LinkOption[], OpenOption[]) by about 60%, see
PathUtilsContentEqualsBenchmark
+ Improve performance of PathUtils.fileContentEquals(Path, Path)
by about 60%, see PathUtilsContentEqualsBenchmark
+ Improve performance of FileUtils.contentEquals(File, File) by
about 60%, see PathUtilsContentEqualsBenchmark
+ Remove unused test code
+ [Javadoc] IOUtils#contentEquals does not throw
NullPointerException
+ Fix CodeQL warnings in UnsynchronizedBufferedInputStream:
Implicit narrowing conversion in compound assignment
+ MessageDigestCalculatingInputStream
.MessageDigestMaintainingObserver
.MessageDigestMaintainingObserver(MessageDigest) now throws a
NullPointerException if the MessageDigest is null
+ MessageDigestCalculatingInputStream
.MessageDigestCalculatingInputStream(InputStream,
MessageDigest) now throws a NullPointerException if the
MessageDigest is null
+ IO-816: UnsynchronizedBufferedInputStream.read(byte[], int,
int) does not use buffer
-------------------------------------------------------------------
Wed Oct 25 16:53:57 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Build with source and target levels 8
-------------------------------------------------------------------
Wed Oct 18 12:52:58 UTC 2023 - David Anes <david.anes@suse.com>
- Update to 2.14.0:
* Lots of new features, fixes and updates.
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.14.0
* Fixes bsc#1231298, CVE-2024-47554: untrusted input to XmlStreamReader
can lead to uncontrolled resource consumption
-------------------------------------------------------------------
Tue Apr 19 15:34:30 UTC 2022 - David Anes <david.anes@suse.com>
- Update to 2.11.0
* Lots of added functions, fixes and updates.
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.11.0
- Update to 2.10.0
* Lots of added functions, fixes and updates.
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.10.0
-------------------------------------------------------------------
Thu Jun 3 16:51:10 UTC 2021 - Pedro Monreal <pmonreal@suse.com>
- Update to 2.9.0
* Lots of added functions, fixes and updates.
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.9.0
-------------------------------------------------------------------
Tue Oct 27 11:49:20 UTC 2020 - Pedro Monreal <pmonreal@suse.com>
- Update to 2.8.0
* Lots of added functions, fixes and updates.
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.8.0
-------------------------------------------------------------------
Wed Jun 3 11:12:22 UTC 2020 - Pedro Monreal Gonzalez <pmonrealgonzalez@suse.com>
- Update to upstream version 2.7 (bsc#1184755, CVE-2021-29425)
* https://commons.apache.org/proper/commons-io/changes-report.html#a2.7
* Lots of bugfixes, updates and enhancements
* Java 8 or later is required
-------------------------------------------------------------------
Wed Mar 27 10:17:25 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Remove pom parent, since we don't use it when not building with
maven
-------------------------------------------------------------------
Tue Feb 26 17:34:25 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- Update to upstream version 2.6
* many bugfixes, features and enhancenments, like
Automatic-Module-Name entry in manifest
* requires jdk7 or later
* see RELEASE-NOTES.txt for details
- Generated a build.xml to be able to build with ant
- Build with tests is now optional
- Removed patch:
* commons-io-version-property.patch
+ not needed anymore in this version
-------------------------------------------------------------------
Tue May 15 10:41:03 UTC 2018 - fstrba@suse.com
- Build with source and target 8 to prepare for a possible removal
of 1.6 compatibility
- Run fdupes on documentation
-------------------------------------------------------------------
Thu Sep 14 11:39:40 UTC 2017 - fstrba@suse.com
- Fix build with jdk9 by specifying source and target level 1.6
-------------------------------------------------------------------
Sun May 21 07:52:44 UTC 2017 - tchvatal@suse.com
- Remove unused depedencies
-------------------------------------------------------------------
Fri May 19 09:52:13 UTC 2017 - pcervinka@suse.com
- New build dependency: javapackages-local
-------------------------------------------------------------------
Wed Mar 18 09:45:59 UTC 2015 - tchvatal@suse.com
- Fix build with new javapackages-tools
-------------------------------------------------------------------
Mon Jul 7 14:53:05 UTC 2014 - tchvatal@suse.com
- Use junit not junit4
-------------------------------------------------------------------
Mon Sep 9 11:05:28 UTC 2013 - tchvatal@suse.com
- Move from jpackage-utils to javapackage-tools
-------------------------------------------------------------------
Wed Mar 20 12:45:16 UTC 2013 - mmeister@suse.com
- Added url as source.
Please see http://en.opensuse.org/SourceUrls
-------------------------------------------------------------------
Thu Oct 25 08:21:33 UTC 2012 - mvyskocil@suse.com
- update to the latest upstream version 2.4 (needed by fop 1.1)
* many bugfixes, features and enhancenments, like
* XmlStreamReader support for UTF-32
* requires jdk6 or later
* see RELEASE-NOTES.txt for details
- rename to apache-commons-io to stay compatible with upstream and fedora
- add commons-io-version-property.patch to fix the version in build.xml
-------------------------------------------------------------------
Mon Aug 25 10:26:55 CEST 2008 - mvyskocil@suse.cz
- target=1.5
- removed a build gcj support
- removed a javadoc %post/postun
- fixed a wrong end of line encoding
-------------------------------------------------------------------
Thu Mar 13 11:37:36 CET 2008 - mvyskocil@suse.cz
- Initial package created with version 1.3.2 (JPackage 1.7)