Release Notes

Release History

VersionDateDescription
2.52013-??-??New features and bug fixes.
2.42012-06-12New features and bug fixes.
2.32012-April-10New features and bug fixes.
2.22012-March-26New features and bug fixes.
2.12011-Sep-28New features and bug fixes.
2.0.12010-Dec-26 
2.02010-Oct-18 
1.42008-Jan-21 
1.3.22007-Jul-02Bug fixes.

Release 2.5 - 2013-??-??

TypeChangesBy

add

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

fix

FileUtils.copyInputStreamToFile should document it closes the input source Fixes IO-380. Thanks to claudio_ch.sebb

fix

Tailer erroneously considers file as new. Fix to use file.lastModified() rather than System.currentTimeMillis() Fixes IO-279.sebb

fix

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

add

CharSequenceInputStream - add tests for available() Fix code so it really does reflect a minimum available. Fixes IO-379.sebb

update

getPrefixLength returns null if filename has leading slashes Javadoc: add examples to show correct behaviour; add unit tests Fixes IO-328.sebb

update

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

IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output Added asBufferedInputStream, asBufferedOutputStream, asBufferedReader, asBufferedWriter Fixes IO-330.sebb

add

Add ByteArrayOutputStream.toInputStream() Fixes IO-346.sebb

fix

ClassLoaderObjectInputStream does not handle primitive typed members Fixes IO-368.sebb

add

A constant for holding the BOM character (U+FEFF) Fixes IO-341.sebb

fix

Deprecate all methods that use the default encoding Fixes IO-314.sebb

fix

When a file is rotated, finish reading previous file prior to starting new one Fixes IO-338.sebb

fix

Commons IO Tailer does not respect UTF-8 Charset. Fixes IO-354.sebb

fix

What should happen in FileUtils.sizeOf[Directory] when an overflow takes place? Added Javadoc. Fixes IO-323.sebb

fix

FileUtils.moveDirectory can produce misleading error message on failiure Fixes IO-372.sebb

update

FilenameUtils.splitOnTokens(String text) check for '**' could be simplified Fixes IO-375.sebb

update

WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors Fixes IO-374.sebb

fix

IOUtils.contentEquals* methods returns false if input1 == input2, should return true. Fixes IO-362. Thanks to mmadson, ggregory.ggregory

add

Add API FileUtils.forceMkdirsParent(). Fixes IO-361.ggregory

add

Add API Charsets.requiredCharsets(). Fixes IO-360.ggregory

add

Add IOUtils.skip and skipFully(ReadableByteChannel, long). Fixes IO-359. Thanks to yukoba.ggregory

add

Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). Fixes IO-358. Thanks to yukoba.ggregory

fix

[Tailer] InterruptedException while the thread is sleeping is silently ignored Fixes IO-357. Thanks to mortenh.ggregory

add

Add API IOUtils.copy(InputStream, OutputStream, int) Fixes IO-353. Thanks to ggregory.ggregory

add

Add API with array offset and length argument to FileUtils.writeByteArrayToFile. Fixes IO-349. Thanks to scop.ggregory

fix

Spelling fixes. Fixes IO-352. Thanks to scop.ggregory

add

Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. Fixes IO-348. Thanks to plcstpierre.ggregory

add

Supply a hook method allowing Tailer actively determining stop condition. Fixes IO-345. Thanks to mkresse.ggregory

Release 2.4 - 2012-06-12

TypeChangesBy

fix

org.apache.commons.io.comparator Javadoc is inconsistent with real code. Fixes IO-343. Thanks to igorlash.ggregory

fix

Yottabyte (YB) incorrectly defined in FileUtils. Fixes IO-336. Thanks to rleavelle.ggregory

add

Tailer locks file from deletion/rename on Windows. Fixes IO-269. Thanks to sebb.ggregory

fix

Tailer erroneously considers file as new. Fixes IO-279. Thanks to Sergio Bossa, Chris Baron.sebb

fix

Tailer#readLines - incorrect CR handling. Fixes IO-335.sebb

fix

FileUtils.toURLs throws NPE for null parameter; document the behavior. Fixes IO-334.sebb

add

Export OSGi packages at version 1.x in addition to 2.x. Fixes IO-333. Thanks to fmeschbe.ggregory

add

Add XmlStreamReader support for UTF-32. Fixes IO-320. Thanks to ggregory.ggregory

add

BOMInputStream wrongly detects UTF-32LE_BOM files as UTF-16LE_BOM files in method getBOM(). Fixes IO-331. Thanks to ggregory.ggregory

fix

Improve tailer's reading performance. Fixes IO-332. Thanks to liangly.ggregory

fix

Improve Tailer performance with buffered reads (see IO-332). Fixes IO-279.ggregory

fix

FileUtils.writeLines uses unbuffered IO. Fixes IO-329. Thanks to tivv.ggregory

add

Add byteCountToDisplaySize(BigInteger). Fixes IO-327. Thanks to ggregory.ggregory

add

Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. Fixes IO-326. Thanks to ggregory, kinow.ggregory

add

Add IOUtils.toByteArray methods to work with URL and URI. Fixes IO-325. Thanks to raviprak.ggregory

add

Add missing Charset sister APIs to method that take a String charset name. Fixes IO-324. Thanks to raviprak.ggregory

fix

FileUtils.sizeOfDirectory follows symbolic links. Fixes IO-319. Thanks to raviprak.ggregory

Release 2.3 - 2012-April-10

TypeChangesBy

add

Add and use class Charsets. Fixes IO-322. Thanks to ggregory.ggregory

add

ByteOrderMark UTF_32LE is incorrect. Fixes IO-321. Thanks to ggregory.ggregory

add

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

TypeChangesBy

add

Add IOUTils.toBufferedReader(Reader) Fixes IO-313. Thanks to ggregory.ggregory

add

Allow applications to provide buffer (or size) for copyLarge methods. Fixes IO-308. Thanks to Manoj Mokashi.sebb

fix

IOUtils.read(InputStream/Reader) ignores the offset parameter Fixes IO-311. Thanks to Robert Muir.sebb

fix

CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize) ignores bufferSize Fixes IO-312.sebb

add

New copyLarge() method in IOUtils that takes additional offset, length arguments Fixes IO-305. Thanks to Manoj Mokashi.sebb

fix

FileUtils.moveDirectoryToDirectory removes source directory if destination is a sub-directory Fixes IO-300.sebb

fix

ReaderInputStream#read(byte[] b, int off, int len) should check for valid parameters Fixes IO-307.sebb

add

Use terabyte (TB), petabyte (PB) and exabyte (EB) in FileUtils.byteCountToDisplaySize(long size) Fixes IO-287. Thanks to Ron Kuris, Gary Gregory.bayard

fix

ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0 Fixes IO-306.sebb

add

FileUtils.listFiles() doesn't return directories Fixes IO-173. Thanks to Marcos Vinícius da Silva.sebb

fix

"FileUtils#deleteDirectoryOnExit(File)" does not work Fixes IO-276. Thanks to nkami.sebb

fix

BoundedInputStream.read() treats max differently from BoundedInputStream.read(byte[]...) Fixes IO-273. Thanks to sebb.sebb

add

CharSequenceInputStream to efficiently stream content of a CharSequence Fixes IO-297. Thanks to Oleg Kalnichevski.sebb

update

ReaderInputStream optimization: more efficient reading of small chunks of data Fixes IO-296. Thanks to Oleg Kalnichevski.sebb

fix

Various methods of class 'org.apache.commons.io.FileUtils' incorrectly suppress 'java.io.IOException' Fixes IO-298. Thanks to Christian Schulte.sebb

add

The second constructor of Tailer class does not pass 'delay' to the third one Fixes IO-304. Thanks to liangly.ggregory

add

TeeOutputStream does not call branch.close() when main.close() throws an exception Fixes IO-303. Thanks to fabian.barney.ggregory

add

ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without BOM multiple times Fixes IO-302. Thanks to jsteuerwald, detinho.ggregory

add

Add IOUtils.closeQuietly(Selector) necessary Fixes IO-301. Thanks to kaykay.unique.ggregory

add

IOUtils.closeQuietly() should take a ServerSocket as a parameter Fixes IO-292. Thanks to sebb.sebb

add

Add read/readFully methods to IOUtils Fixes IO-290. Thanks to sebb.sebb

add

Supply a ReversedLinesFileReader Fixes IO-288. Thanks to Georg Henzler.sebb

add

Add new function FileUtils.directoryContains. Fixes IO-291. Thanks to ggregory.ggregory

add

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

TypeChangesBy

add

Use standard Maven directory layout Fixes IO-285. Thanks to ggregory.ggregory

add

Add IOUtils API toString for URL and URI to get contents Fixes IO-284. Thanks to ggregory.ggregory

add

Add API FileUtils.copyFile(File input, OutputStream output) Fixes IO-282. Thanks to ggregory.ggregory

fix

Dubious use of mkdirs() return code Fixes IO-280. Thanks to sebb.sebb

fix

ReaderInputStream enters infinite loop when it encounters an unmappable character Fixes IO-277.

fix

FileUtils.moveFile() JavaDoc should specify FileExistsException thrown Fixes IO-264.

add

FileAlterationObserver has no getter for FileFilter Fixes IO-262.

add

Add FileUtils.getFile API with varargs parameter Fixes IO-261.

fix

ClassLoaderObjectInputStream does not handle Proxy classes Fixes IO-260.

update

FileAlterationMonitor.stop(boolean allowIntervalToFinish) Fixes IO-259.

add

Add new APPEND parameter for writing string into files Fixes IO-182.

fix

Tailer returning partial lines when reaching EOF before EOL Fixes IO-274. Thanks to Frank Grimes.sebb

fix

FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows) Fixes IO-266. Thanks to Igor Smereka.sebb

fix

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

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

TypeChangesBy

update

TODO: Convert RELEASE-NOTES.txt from 2.0.1?

Release 2.0 - 2010-Oct-18

TypeChangesBy

update

TODO: Convert RELEASE-NOTES.txt from 2.0?

Release 1.4 - 2008-Jan-21

TypeChangesBy

update

TODO: Convert RELEASE-NOTES.txt from 1.4?

Release 1.3.2 - 2007-Jul-02

TypeChangesBy

fix

Some tests, which are implicitly assuming a Unix-like file system, are now skipped on Windows. Fixes IO-115.jochen

fix

Created the FileCleaningTracker, basically a non-static version of the FileCleaner, which can be controlled by the user. Fixes IO-116.jochen

fix

EndianUtils - both readSwappedUnsignedInteger(...) methods could return negative numbers due to int/long casting. Fixes IO-117. Thanks to Hiroshi Ikeda.bayard