| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- |
| This file is used by the maven-changes-plugin to generate the release notes. |
| Useful ways of finding items to add to this file are: |
| |
| 1. Add items when you fix a bug or add a feature (this makes the |
| release process easy :-). |
| |
| 2. Do a Jira search for tickets closed since the previous release. |
| |
| 3. Use the report generated by the maven-changelog-plugin to see all |
| CVS commits. Set the project.properties' maven.changelog.range |
| property to the number of days since the last release. |
| |
| |
| To generate the release notes from this file: |
| |
| mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn] |
| |
| then tweak the source formatting if necessary and regenerate, then commit |
| |
| The <action> type attribute can be add,update,fix,remove. |
| --> |
| |
| <document> |
| <properties> |
| <title>Apache Commons IO Release Notes</title> |
| </properties> |
| |
| <body> |
| <!-- The release date is the date RC is cut --> |
| <release version="2.9.0" date="2020-MM-DD" description="Java 8 required."> |
| <!-- FIX --> |
| <action issue="IO-686" dev="ggregory" type="fix" due-to="Alan Moffat, Gary Gregory"> |
| IOUtils.toByteArray(InputStream) Javadoc does not match code. |
| </action> |
| <action issue="IO-689" dev="aherbert" type="fix" due-to="Uwe Schindler"> |
| FileUtils: Remove Instant->ZonedDateTime->Instant round-trip. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Michael Ernst, Gary Gregory"> |
| Make FilenameUtils.equals() not throw an exception #154. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Jan Peter Stotz, Bernd Eckenfels, Gary Gregory"> |
| Un-deprecate IOUtils.closeQuietly() methods. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Michiel Kalkman"> |
| FileUtils#copyDirectory(File, File, FileFilter, preserveFileDate) clean up #163. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| AccumulatorPathVisitor does not track directories properly. |
| </action> |
| <action issue="IO-597" dev="ggregory" type="fix" due-to="Gary Gregory, Arvind, Rob Spoor"> |
| 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. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| FileUtils.forceDelete(File) actually forces deletion of read-only files as it did in version 2.6. |
| </action> |
| <action issue="IO-692" dev="ebourg" type="fix" due-to="Matthew Rooney, Emmanuel Bourg"> |
| PathUtils.deleteFile() no longer throws a NoSuchFileException when applied on a symbolic link pointing |
| to a file that doesn't exist. |
| </action> |
| <action issue="IO-694" dev="ggregory" type="fix" due-to="Tan Yee Fan, Gary Gregory"> |
| Behavior change in FileUtils.copyDirectory() file last modified timestamp preservation. Match Javadoc to code. |
| </action> |
| <action issue="IO-600" dev="ggregory" type="fix" due-to="Abhyankar Chaubey, Gary Gregory"> |
| Fix getPrefixLength method for Linux filename #179. |
| </action> |
| <action issue="IO-699" dev="ggregory" type="fix" due-to="tza, Gary Gregory"> |
| Wrong logging in FileUtils.setLastModified. |
| </action> |
| <action issue="IO-686" dev="ggregory" type="fix" due-to="Alan Moffat, Sebb, Gary Gregory"> |
| IOUtils.toByteArray(InputStream) Javadoc does not match code. |
| </action> |
| <action issue="IO-688" dev="ggregory" type="fix" due-to="Michael Ernst, Gary Gregory"> |
| CopyUtils deprecation message gives wrong version. |
| </action> |
| <action issue="IO-701" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Make PathUtils.setReadOnly deal with LinuxDosFileAttributeView #186. |
| </action> |
| <action issue="IO-702" dev="ggregory" type="fix" due-to="Boris Unckel, Gary Gregory"> |
| FileUtils.forceDelete does not delete invalid links. #187. |
| </action> |
| <action issue="IO-690" dev="ggregory" type="fix" due-to="Chris Heisterkamp, Gary Gregory"> |
| IOUtils.toByteArray(null) no longer throws a NullPointerException. |
| </action> |
| <action issue="IO-705" dev="ggregory" type="fix" due-to="Hao Zhong, Gary Gregory"> |
| MarkShieldInputStream#reset should throw UnsupportedOperationException. |
| </action> |
| <action issue="IO-705" dev="ggregory" type="fix" due-to="Hao Zhong, Gary Gregory"> |
| LockableFileWriter.close() should fail when the lock file cannot be deleted. |
| </action> |
| <action issue="IO-705" dev="ggregory" type="fix" due-to="Hao Zhong, Gary Gregory"> |
| Fix infinite loops in ObservableInputStream read(*) when an exception is caught but not re-thrown. |
| </action> |
| <action issue="IO-719" dev="ggregory" type="fix" due-to="Andrew Shcheglov, Gary Gregory"> |
| Fixed error of copying directories between different file systems #203. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Felix Rilling"> |
| Fix Typos in JavaDoc, Comments and Tests #201. |
| </action> |
| <action issue="IO-718" dev="ggregory" type="fix" due-to="Robert Cooper, Gary Gregory"> |
| FileUtils.checksumCRC32 and FileUtils.checksum are not thread safe. |
| </action> |
| <action issue="IO-720" dev="ggregory" type="fix" due-to="XenoAmess"> |
| Fix error about usage of DirectBuffer in JRE 16/17 #205. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Rob Spoor, Gary Gregory"> |
| Prevent infinite loop with AbstractCharacterFilterReader if EOF is filtered out #226. |
| </action> |
| <!-- ADD --> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileSystemProviders class. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Let org.apache.commons.io.filefilter classes work with java.nio.file.Files.walk* APIs. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Let org.apache.commons.io.filefilter classes work with java.nio.file.Files#newDirectoryStream(Path, DirectoryStream.Filter). |
| </action> |
| <action issue="IO-510" dev="ggregory" type="add" due-to="Gary Gregory, Apache Spark, David Mollitor"> |
| Add and adapt ReadAheadInputStream and BufferedFileChannelInputStream from Apache Spark. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.createParentDirectories(Path, FileAttribute...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add factory methods to CloseShieldInputStream, CloseShieldReader, CloseShieldOutputStream, CloseShieldWriter, #173. |
| </action> |
| <action dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add QueueInputStream and QueueOutputStream as simpler alternatives to PipedInputStream and PipedOutputStream #171. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add StandardLineSeparator. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Replace magic numbers with constants with the new IOUtils.CR and LF. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileSystem#supportsDriveLetter(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.delete(File). |
| </action> |
| <action issue="IO-700" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.moveFile(File, File, CopyOption...) #185. |
| </action> |
| <action issue="IO-700" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.isEmptyDirectory(File). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.lastModified[Unchecked](File) to workaround https://bugs.openjdk.java.net/browse/JDK-8177809. |
| </action> |
| <action issue="IO-709" dev="ggregory" type="add" due-to="Boris Unckel, Gary Gregory"> |
| Add null safe variants of isDirectory and isRegularFile. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use IOExceptionList(String, List). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use ObservableInputStream.ObservableInputStream(InputStream, Observer...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Make ObservableInputStream.getObservers() public. |
| </action> |
| <action issue="IO-706" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add TimestampedObserver. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use IOUtils.byteArray(*). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Make public and reuse IOUtils.EMPTY_BYTE_ARRAY. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOUtils.copy(URL, File). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add copy(URL, OutputStream). |
| </action> |
| <action issue="IO-651" dev="ggregory" type="add" due-to="jmark109, Gary Gregory"> |
| Add DeferredFileOutputStream.toInputStream() #206. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add CharacterSetFilterReader.CharacterSetFilterReader(Reader, Integer...). |
| </action> |
| <!-- UPDATES --> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update junit-jupiter from 5.6.2 to 5.7.0 #153. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update mockito-core from 3.5.9 to 3.10.0, #152, #155, #157, #166, #167, #169, #182. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump mockito-inline from 3.7.0 to 3.10.0 #188, #207, #230. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update commons.jacoco.version 0.8.5 to 0.8.7, fixes Java 15 builds and up. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update spotbugs from 4.1.2 to 4.2.2, 4.2.3, #158, #164, #165, #180, #199, #213, #224. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump spotbugs-maven-plugin from 4.0.4 to 4.2.3, #161, #172, #223. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory, Dependabot"> |
| Update org.junit-pioneer:junit-pioneer 0.9.0 -> 1.4,1, #159, #162, #170, #189, #191, #210, #229. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update actions/checkout from v2.3.2 to v2.3.4, #156, #168. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump actions/setup-java from v1.4.2 to v2 #160. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update maven-surefire-plugin from 2.22.2 to 3.0.0-M5. |
| </action> |
| <action dev="ggregory" type="update" due-to="Arturo Bernal"> |
| Minor improvements, #176, 177, #190. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update commons.japicmp.version 0.14.4 -> 0.15.3. |
| </action> |
| <action dev="ggregory" type="update" due-to="Michiel Kalkman"> |
| Tiny performance improvement in FileUtils#moveDirectoryToDirectory() #174. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump checkstyle from 8.38 to 8.42 #689, #209, #225. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump maven-checkstyle-plugin from 3.1.1 to 3.1.2 #198. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump jimfs from 1.1 to 1.2 #183. |
| </action> |
| <action dev="ggregory" type="update" due-to="XenoAmess, Gary Gregory"> |
| Improve performance of IOUtils.contentEquals(InputStream, InputStream). |
| </action> |
| <action dev="ggregory" type="update" due-to="XenoAmess, Gary Gregory"> |
| Improve performance of IOUtils.contentEquals(Reader, Reader). |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump actions/cache from v2 to v2.1.5 #202, #228. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump junit-bom from 5.7.0 to 5.7.1 #200. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update from Apache Commons Lang 3.11 to 3.12.0. |
| </action> |
| </release> |
| <!-- The release date is the date RC is cut --> |
| <release version="2.8.0" date="2020-09-05" description="Java 8 required."> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.input.CircularInputStream. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.file.PathUtils.cleanDirectory(Path, FileVisitOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.file.PathUtils.deleteDirectory(Path, FileVisitOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullAppendable. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Rob Spoor, Jochen Wiedmann"> |
| CharSequenceReader.skip should return 0 instead of EOF on stream end #123. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Rob Spoor"> |
| Implement CharSequenceReader.ready() #122. |
| </action> |
| <action issue="IO-669" dev="ggregory" type="fix" due-to="XenoAmess, Gary Gregory"> |
| Fix code smells; fix typos #115. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Jerome Wolff, Gary Gregory"> |
| Add caching for required charsets #120. |
| </action> |
| <action issue="IO-673" type="fix" dev="ggregory" due-to="Jerome Wolff"> |
| Make some simplifications #121. |
| </action> |
| <action issue="IO-674" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| InfiniteCircularInputStream is not infinite if its input buffer contains -1. |
| </action> |
| <action issue="IO-675" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| InfiniteCircularInputStream throws a divide-by-zero exception when reading if its input buffer is size 0. |
| </action> |
| <action issue="IO-677" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| FileSystem.getCurrent() does not return the correct enum. |
| </action> |
| <action issue="IO-679" dev="ggregory" type="fix" due-to="proneel"> |
| input.AbstractCharacterFilterReader passes count of chars read #132. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.getAclEntryList(Path). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Null-guard IOUtils.close(Closeable, IOConsumer). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ReversedLinesFileReader.readLines(int). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ReversedLinesFileReader.toString(int). |
| </action> |
| <action issue="IO-684" dev="ggregory" type="add" due-to="Gary Gregory, Robin Jansohn"> |
| 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...). |
| </action> |
| <action issue="IO-683" dev="sebb" type="fix"> |
| CircularBufferInputStream.read() fails to convert byte to unsigned int |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Fix SpotBugs issues in org.apache.commons.io.FileUtils. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add RandomAccessFileInputStream. |
| </action> |
| <action issue="IO-681" dev="sebb" type="add"> |
| IOUtils.close(Closeable) should allow a list of closeables. |
| </action> |
| <action issue="IO-672" dev="sebb" type="fix"> |
| Copying a File sets last modified date to 01 January 1970. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOUtils.consume(InputStream). |
| </action> |
| <action issue="IO-676" dev="ggregory" type="add" due-to="Isira Seneviratne, Gary Gregory"> |
| Add isFileNewer() and isFileOlder() methods that support the Java 8 Date/Time API. #124. |
| </action> |
| <action issue="IO-676" dev="ggregory" type="fix" due-to="Michael Ernst, Gary Gregory"> |
| Prevent NullPointerException in ReversedLinesFileReader constructors #117. |
| </action> |
| <action dev="ggregory" type="add" due-to="Adam Retter, Gary Gregory"> |
| Add a MarkShieldInputStream #119. |
| </action> |
| <!-- UPDATES --> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Deprecate IOUtils.LINE_SEPARATOR in favor of Java 7's System.lineSeparator(). |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Replace FindBugs with SpotBugs. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| maven-checkstyle-plugin 3.1.0 -> 3.1.1. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update tests from org.apache.commons:commons-lang3 3.10 to 3.11. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update commons-parent from 50 to 51 #129. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update actions/checkout from v1 to v2.3.1 #126. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update junit-pioneer from 0.6.0 to 0.8.0, #127, #135. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update mockito-core from 3.3.3 to 3.5.9 #128, #133, #145, #149, #151. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update spotbugs from 4.0.6 to 4.1.1 #134. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update junit-pioneer from 0.8.0 to 0.9.0 #138. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update actions/checkout from v2.3.1 to v2.3.2 #140. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Update actions/setup-java from v1.4.0 to v1.4.2 #141, #148. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update com.github.siom79.japicmp:japicmp-maven-plugin 0.14.3 -> 0.14.4. |
| </action> |
| </release> |
| <!-- The release date is the date RC is cut --> |
| <release version="2.7" date="2020-05-24" description="Java 8 required."> |
| <action issue="IO-589" dev="sebb" type="fix"> |
| Some tests fail if the base path contains a space. |
| </action> |
| <action dev="jochen" type="add"> |
| Adding the CircularBufferInputStream, and the PeekableInputStream. |
| </action> |
| <action issue="IO-582" dev="jochen" type="fix" due-to="Bruno Palos"> |
| Make methods in ObservableInputStream.Obsever public. |
| </action> |
| <action issue="IO-535" dev="pschumacher" type="fix" due-to="Svetlin Zarev, Anthony Raymond"> |
| Thread bug in FileAlterationMonitor#stop(int). |
| </action> |
| <action issue="IO-553" dev="ggregory" type="add"> |
| Add org.apache.commons.io.FilenameUtils.isIllegalWindowsFileName(char). |
| </action> |
| <action issue="IO-557" dev="pschumacher" type="fix" due-to="luccioman"> |
| Perform locale independent upper case conversions. |
| </action> |
| <action issue="IO-570" dev="ggregory" type="fix" due-to="Pranet Verma"> |
| Missing Javadoc in FilenameUtils causing Travis-CI build to fail. |
| </action> |
| <action issue="IO-571" dev="ggregory" type="fix" due-to="pranet"> |
| Remove redundant isDirectory() check in org.apache.commons.io.FileUtils.listFilesAndDirs(File, IOFileFilter, IOFileFilter). |
| </action> |
| <action issue="IO-572" dev="ggregory" type="update" due-to="Pranet Verma"> |
| Refactor duplicate code in org.apache.commons.io.FileUtils. |
| </action> |
| <action issue="IO-577" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add readers to filter out given characters: CharacterSetFilterReader and CharacterFilterReader. |
| </action> |
| <action issue="IO-559" type="fix"> |
| FilenameUtils.normalize now verifies hostname syntax in UNC path. |
| </action> |
| <action issue="IO-580" dev="ggregory" type="update"> |
| Update org.apache.commons.io.FilenameUtils.isExtension(String, String[]) to use var args. |
| </action> |
| <action issue="IO-554" dev="ggregory" type="fix" due-to="Michele Mariotti"> |
| FileUtils.copyToFile(InputStream source, File destination) should not close input stream. |
| </action> |
| <action issue="IO-594" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOUtils copy methods with java.lang.Appendable as the target. |
| </action> |
| <action issue="IO-604" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| FileUtils.doCopyFile(File, File, boolean) can throw ClosedByInterruptException. |
| </action> |
| <action issue="IO-605" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add class CanExecuteFileFilter. |
| </action> |
| <action issue="IO-701" dev="ggregory" type="update" due-to="Raymond Tan"> |
| Make array declaration in ThresholdingOutputStream consistent with other array declarations in the library #77. |
| </action> |
| <action issue="IO-578" dev="ggregory" type="add" due-to="Mark Chesney"> |
| Support java.nio.Path and non-default file systems for ReversedLinesFileReader (#62). |
| </action> |
| <action issue="IO-608" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add a convenience NullPrintStream. |
| </action> |
| <action issue="IO-607" dev="ggregory" type="update" due-to="Gary Gregory"> |
| Update from Java 7 to Java 8. |
| </action> |
| <action issue="IO-610" dev="ggregory" type="update" due-to="Sebastian"> |
| Remove throws IOException in method isSymlink() #80. |
| </action> |
| <action issue="IO-612" dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add class TeeReader. |
| </action> |
| <action issue="IO-613" dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add classes ClosedReader and CloseShieldReader. #84. |
| </action> |
| <action issue="IO-614" dev="ggregory" type="add" due-to="Rob Spoor"> |
| Add classes TaggedWriter, ClosedWriter and BrokenWriter. #86. |
| </action> |
| <action issue="IO-615" dev="ggregory" type="add" due-to="Gary Gregory, Rob Spoor"> |
| Add classes TeeWriter, FilterCollectionWriter, ProxyCollectionWriter, IOExceptionList, IOIndexedException. |
| </action> |
| <action issue="IO-616" dev="ggregory" type="add" due-to="Rob Spoor"> |
| Add class AppendableWriter. #87. |
| </action> |
| <action issue="IO-617" dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add class CloseShieldWriter. #83. |
| </action> |
| <action issue="IO-618" dev="ggregory" type="add" due-to="Rob Spoor"> |
| Add classes Added TaggedReader, ClosedReader and BrokenReader. #85. |
| </action> |
| <action issue="IO-619" dev="ggregory" type="add" due-to="Rob Spoor"> |
| Support sub sequences in CharSequenceReader. #91. |
| </action> |
| <action issue="IO-625" dev="ggregory" type="fix" due-to="Mikko Maunu"> |
| Corrected misleading exception message for FileUtils.copyDirectoryToDirectory. |
| </action> |
| <action issue="IO-626" dev="ggregory" type="fix" due-to="Yuji Konishi"> |
| A mistake in the FilenameUtils.concat()'s Javadoc about an absolute path. |
| </action> |
| <action issue="IO-628" dev="ggregory" type="update" due-to="Allon Mureinik"> |
| Migration to JUnit Jupiter #97. |
| </action> |
| <action issue="IO-630" dev="ggregory" type="update" due-to="Gary Gregory"> |
| Deprecate org.apache.commons.io.output.NullOutputStream.NullOutputStream() in favor of org.apache.commons.io.output.NullOutputStream.NULL_OUTPUT_STREAM. |
| </action> |
| <action issue="IO-631" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add a CountingFileVisitor (as the basis for a forthcoming DeletingFileVisitor). |
| </action> |
| <action issue="IO-632" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils for operations on NIO Path. |
| </action> |
| <action issue="IO-633" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add DeletingFileVisitor. |
| </action> |
| <action issue="IO-629" dev="ggregory" type="update" due-to="Ian Springer, Ian Springer, Gary Gregory"> |
| FileUtils#forceDelete should use Files#delete rather than File#delete so exception messages includes reason for failure. |
| </action> |
| <action issue="IO-634" dev="ggregory" type="update" due-to="Václav Haisman, Bruno P. Kinoshita, Gary Gregory"> |
| Make getCause synchronized and use a Deque instead of a Stack #64. |
| </action> |
| <action issue="IO-635" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.IOUtils.close(Closeable). |
| </action> |
| <action issue="IO-636" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and reuse org.apache.commons.io.IOUtils.closeQuitely(Closeable, Consumer<IOException>). |
| Add and reuse org.apache.commons.io.IOUtils.close(Closeable, IOConsumer<IOException>). |
| </action> |
| <action issue="IO-640" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| NPE in org.apache.commons.io.IOUtils.contentEquals(InputStream, InputStream) when only one input is null. |
| </action> |
| <action issue="IO-641" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| NPE in org.apache.commons.io.IOUtils.contentEquals(Reader, Reader) when only one input is null. |
| </action> |
| <action issue="IO-643" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| NPE in org.apache.commons.io.IOUtils.contentEqualsIgnoreEOL(Reader, Reader) when only one input is null. |
| </action> |
| <action issue="IO-644" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| NPE in org.apache.commons.io.FileUtils.contentEqualsIgnoreEOL(File, File) when only one input is null. |
| </action> |
| <action issue="IO-645" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.file.PathUtils.fileContentEquals(Path, Path, OpenOption...). |
| </action> |
| <action issue="IO-458" dev="ggregory" type="add" due-to="Gary Gregory, Joshua Gitlin"> |
| Add a SequenceReader similar to java.io.SequenceInputStream. |
| </action> |
| <action issue="IO-648" dev="ggregory" type="add" due-to="Gary Gregory"> |
| Implement directory content equality. 100#. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update tests from Apache Commons Lang 3.9 to 3.10. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update tests org.junit-pioneer:junit-pioneer 0.3.0 -> 0.6.0. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update tests org.junit.jupiter:junit-jupiter 5.5.2 -> 5.6.2. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update tests org.mockito:mockito-core 3.0.0 -> 3.3.3. |
| </action> |
| <action issue="IO-648" dev="ggregory" type="add" due-to="Adam Retter, Alex Herbert, Gary Gregory"> |
| Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. |
| </action> |
| <action issue="IO-662" dev="ggregory" type="add" due-to="Adam Retter, Gary Gregory"> |
| Refactor ByteArrayOutputStream into synchronized and unsynchronized versions #108. |
| </action> |
| <action issue="IO-664" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| org.apache.commons.io.FileUtils.copyURLToFile(*) open but do not close streams. |
| </action> |
| <action issue="IO-666" dev="ggregory" type="update" due-to="Gary Gregory"> |
| Normalize internal buffers to 8192 bytes. |
| </action> |
| <action issue="IO-665" dev="ggregory" type="update" due-to="Otto Fowler, Gary Gregory"> |
| Ensure that passing a null InputStream results in NPE with tests #112. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| commons.jacoco.version 0.8.4 -> 0.8.5. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| com.github.siom79.japicmp:japicmp-maven-plugin 0.14.1 -> 0.14.3. |
| </action> |
| <action issue="IO-667" dev="ggregory" type="update" due-to="Adam Retter, Gary Gregory"> |
| Add functional interfaces IOFunction and IOSupplier #110. |
| </action> |
| <action dev="ggregory" type="update" due-to="Rob Spoor, Gary Gregory"> |
| Support sub sequences in CharSequenceReader #91. |
| </action> |
| <action dev="ggregory" type="update" due-to="dengliming"> |
| Remove deprecated sudo setting. #113. |
| </action> |
| </release> |
| |
| <release version="2.6" date="2017-10-15" description="Java 7 required, Java 9 supported."> |
| <action issue="IO-553" dev="britter" type="update" due-to="Michael Ernst"> |
| Make code style of hasBOM() consistent with getBOMCharsetName() |
| </action> |
| <action issue="IO-546" dev="pschumacher" type="fix" due-to="Tomas Celaya"> |
| ClosedOutputStream#flush should throw |
| </action> |
| <action issue="IO-551" dev="britter" type="add"> |
| Add Automatic-Module-Name MANIFEST entry for Java 9 compatibility |
| </action> |
| <action issue="IO-550" dev="kinow" type="fix" due-to="Jimi Adrian"> |
| Documentation issue, fix 404 Javadoc issues in the description page |
| </action> |
| <action issue="IO-542" dev="pschumacher" type="update" due-to="Ilmars Poikans"> |
| FileUtils#readFileToByteArray: optimize reading of files with known size |
| </action> |
| <action issue="IO-547" dev="ggregory" type="update" due-to="Nikhil Shinde, Michael Ernst, Gary Greory"> |
| Throw a IllegalArgumentException instead of NullPointerException in FileSystemUtils.freeSpaceWindows(). |
| </action> |
| <action issue="IO-367" dev="pschumacher" type="add" due-to="James Sawle"> |
| Add convenience methods for copyToDirectory |
| </action> |
| <action issue="IO-442" dev="pschumacher" type="fix" due-to="Simon Robinson"> |
| Javadoc contradictory for FileFilterUtils.ageFileFilter(cutoff) and the filter it constructs: AgeFileFilter(cutoff) |
| </action> |
| <action issue="IO-534" dev="sebb" type="fix"> |
| FileUtilTestCase.testForceDeleteDir() should not delete testDirectory parent |
| </action> |
| <action issue="IO-528" dev="pschumacher" type="fix" due-to="Dave Moten"> |
| fix Tailer.run race condition runaway logging |
| </action> |
| <action issue="IO-483" dev="kinow" type="fix" due-to="Marko Vasic"> |
| getPrefixLength return -1 if unix file contains colon |
| </action> |
| <action issue="IO-520" dev="pschumacher" type="fix"> |
| FileUtilsTestCase#testContentEqualsIgnoreEOL fails on Windows |
| </action> |
| <action issue="IO-516" dev="pschumacher" type="fix" due-to="Jason Pyeron"> |
| .gitattributes not correctly applied |
| </action> |
| <action issue="IO-515" dev="ggregory" type="fix" due-to="Brett Lounsbury, Gary Gregory"> |
| Allow Specifying Initial Buffer Size of DeferredFileOutputStream. |
| </action> |
| <action issue="IO-512" dev="ggregory" type="fix" due-to="Ralf Hauser"> |
| ThresholdingOutputStream.thresholdReached() results in FileNotFoundException. |
| </action> |
| <action issue="IO-511" dev="britter" type="fix" due-to="Ahmet Celik"> |
| After a few unit tests, a few newly created directories not cleaned completely. |
| </action> |
| <action issue="IO-502" dev="ggregory" type="fix" due-to="Christian Schulte"> |
| Exceptions are suppressed incorrectly when copying files. |
| </action> |
| <action issue="IO-503" dev="ggregory" type="fix"> |
| Update platform requirement to Java 7. |
| </action> |
| <action issue="IO-537" dev="ggregory" type="fix" due-to="Borys Zibrov"> |
| BOMInputStream shouldn't sort array of BOMs in-place. |
| </action> |
| <action issue="IO-506" dev="ggregory" type="update" due-to="Christian Schulte"> |
| Deprecate methods FileSystemUtils.freeSpaceKb(). |
| </action> |
| <action issue="IO-505" dev="ggregory" type="update" due-to="Christian Schulte"> |
| Make LineIterator implement Closeable to support try-with-resources statements. |
| </action> |
| <action issue="IO-504" dev="ggregory" type="update" due-to="Christian Schulte"> |
| Deprecated of all IOUtils.closeQuietly() methods and use try-with-resources internally. |
| </action> |
| <action issue="IO-493" dev="pschumacher" type="add" due-to="Piotr Turski"> |
| Add infinite circular input stream |
| </action> |
| <action issue="IO-507" dev="ggregory" type="add"> |
| Add a ByteOrderParser class. |
| </action> |
| <action issue="IO-518" dev="jochen" type="add"> |
| Add ObservableInputStream |
| </action> |
| <action issue="IO-519" dev="jochen" type="add"> |
| Add MessageDigestCalculatingInputStream |
| </action> |
| <action issue="IO-513" dev="ggregory" type="add" due-to="Behrang Saeedzadeh"> |
| Add convenience methods for reading class path resources. |
| </action> |
| <action issue="IO-514" dev="pschumacher" type="remove"> |
| Remove org.apache.commons.io.Java7Support |
| </action> |
| <action issue="IO-567" dev="jochen" type="fix"> |
| 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). |
| </action> |
| </release> |
| |
| <release version="2.5" date="2016-04-22" description="New features and bug fixes."> |
| <action issue="IO-492" dev="ggregory" type="fix" due-to="Santiago Castro"> |
| Typo: In an IOUtils.java comment it says "focussed" instead of "focused". |
| </action> |
| <action issue="IO-433" dev="krosenvold" type="update"> |
| Converted all test cases to JUnit 4 |
| </action> |
| <action issue="IO-487" dev="bdelacretaz" type="add"> |
| Add ValidatingObjectInputStream for controlled deserialization |
| </action> |
| <action issue="IO-446" dev="krosenvold" type="fix" due-to="Jeffrey Barrus"> |
| adds an endOfFileReached method to the TailerListener |
| </action> |
| <action issue="IO-484" dev="krosenvold" type="fix" due-to="Philippe Arteau"> |
| FilenameUtils should handle embedded null bytes |
| </action> |
| <action issue="IO-481" dev="krosenvold" type="fix"> |
| Changed/Corrected algorithm for waitFor |
| </action> |
| <action issue="IO-471" dev="krosenvold" type="add" due-to="Leandro Reis"> |
| Support for additional encodings in ReversedLinesFileReader |
| </action> |
| <action issue="IO-428" dev="krosenvold" type="fix" due-to="Stefan Gmeiner"> |
| BOMInputStream.skip returns wrong count if stream contains no BOM |
| </action> |
| <action issue="IO-425" dev="krosenvold" type="add" due-to="Craig Swank"> |
| Setter method for threshold on ThresholdingOutputStream |
| </action> |
| <action issue="IO-488" dev="krosenvold" type="fix" due-to="Björn Buchner"> |
| FileUtils.waitFor(...) swallows thread interrupted status |
| </action> |
| <action issue="IO-452" dev="krosenvold" type="fix" due-to="David Standish"> |
| Support for symlinks with missing target. Added support for JDK7 symlink features when present |
| </action> |
| <action issue="IO-466" dev="krosenvold" type="update"> |
| Added testcase to show this was fixed with IO-423 |
| </action> |
| <action issue="IO-479" dev="sebb" type="update" due-to="Zhouce Chen"> |
| Correct exception message in FileUtils.getFile(File, String...) |
| </action> |
| <action issue="IO-406" dev="britter" type="add" due-to="Niall Pemberton"> |
| Introduce new class AppendableOutputStream |
| </action> |
| <action issue="IO-465" dev="britter" type="update" due-to="based2"> |
| Update to JUnit 4.12 |
| </action> |
| <action issue="IO-462" dev="sebb" type="update"> |
| IOExceptionWithCause no longer needed |
| </action> |
| <action issue="IO-459" dev="olamy" type="add" due-to="Kristian Rosenvold"> |
| Add WindowsLineEndingInputStream and UnixLineEndingInputStream. |
| </action> |
| <action issue="IO-457" dev="olamy" type="add" due-to="Kristian Rosenvold"> |
| 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. |
| </action> |
| <action issue="IO-453" dev="sebb" type="fix" due-to="Steven Christou"> |
| Regression in FileUtils.readFileToString from 2.0.1 |
| </action> |
| <action issue="IO-451" dev="sebb" type="fix" due-to="David Standish"> |
| ant test fails - resources missing from test classpath |
| </action> |
| <action issue="IO-435" dev="tn" type="fix" due-to="Dominik Stadler"> |
| Document that FileUtils.deleteDirectory, directoryContains and cleanDirectory |
| may throw an IllegalArgumentException in case the passed directory does not |
| exist or is not a directory. |
| </action> |
| <action issue="IO-426" dev="ggregory" type="add"> |
| Add API IOUtils.closeQuietly(Closeable...) |
| </action> |
| <action issue="IO-424" dev="ggregory" type="fix" due-to="Ville Skyttä"> |
| Javadoc fixes, mostly to appease 1.8.0 |
| </action> |
| <action issue="IO-422" dev="ggregory" type="update"> |
| Deprecate Charsets Charset constants in favor of Java 7's java.nio.charset.StandardCharsets |
| </action> |
| <action issue="IO-410" dev="sebb" type="add" due-to="Beluga Behr"> |
| Readfully() That Returns A Byte Array |
| </action> |
| <action issue="IO-395" dev="brentworden" type="add" due-to="Beluga Behr"> |
| Overload IOUtils buffer methods to accept buffer size |
| </action> |
| <action issue="IO-389" dev="sebb" type="fix" due-to="Austin Doupnik"> |
| FileUtils.sizeOfDirectory can throw IllegalArgumentException |
| </action> |
| <action issue="IO-390" dev="sebb" type="fix"> |
| FileUtils.sizeOfDirectoryAsBigInteger can overflow. |
| Ensure that recursive calls all use BigInteger |
| </action> |
| <action issue="IO-382" dev="sebb" type="add"> |
| Chunked IO for large arrays. |
| Added writeChunked(byte[], OutputStream) and writeChunked(char[] Writer) |
| Added ChunkedOutputStream, ChunkedWriter |
| </action> |
| <action issue="IO-385" dev="sebb" type="fix"> |
| FileUtils.doCopyFile can potentially loop for ever |
| Exit loop if no data to copy |
| </action> |
| <action issue="IO-383" dev="sebb" type="fix"> |
| FileUtils.doCopyFile caches the file size; needs to be documented |
| Added Javadoc; show file lengths in exception message |
| </action> |
| <action issue="IO-239" dev="sebb" type="update"> |
| Convert IOCase to a Java 1.5+ Enumeration |
| [N.B. this is binary compatible] |
| </action> |
| <action issue="IO-233" dev="sebb" type="add"> |
| Add Methods for Buffering Streams/Writers To IOUtils |
| Added overloaded buffer() methods - see also IO-330 |
| </action> |
| <action issue="IO-330" dev="sebb" type="add"> |
| IOUtils#toBufferedOutputStream/toBufferedWriter to conditionally wrap the output |
| Added overloaded buffer() methods - see also IO-233 |
| </action> |
| <action issue="IO-381" dev="ggregory" type="add"> |
| Add FileUtils.copyInputStreamToFile API with option to leave the source open. |
| See copyInputStreamToFile(final InputStream source, final File destination, boolean closeSource) |
| </action> |
| <action issue="IO-380" dev="sebb" type="fix" due-to="claudio_ch"> |
| FileUtils.copyInputStreamToFile should document it closes the input source |
| </action> |
| <action issue="IO-279" dev="sebb" type="fix"> |
| Tailer erroneously considers file as new. |
| Fix to use file.lastModified() rather than System.currentTimeMillis() |
| </action> |
| <action issue="IO-356" dev="sebb" type="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 |
| </action> |
| <action issue="IO-379" dev="sebb" type="add"> |
| CharSequenceInputStream - add tests for available() |
| Fix code so it really does reflect a minimum available. |
| </action> |
| <action issue="IO-328" dev="sebb" type="update"> |
| getPrefixLength returns null if filename has leading slashes |
| Javadoc: add examples to show correct behavior; add unit tests |
| </action> |
| <action issue="IO-299" dev="sebb" type="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 |
| </action> |
| <action issue="IO-346" dev="sebb" type="add"> |
| Add ByteArrayOutputStream.toInputStream() |
| </action> |
| <action issue="IO-368" dev="sebb" type="fix"> |
| ClassLoaderObjectInputStream does not handle primitive typed members |
| </action> |
| <action issue="IO-341" dev="sebb" type="add"> |
| A constant for holding the BOM character (U+FEFF) |
| </action> |
| <action issue="IO-314" dev="sebb" type="fix"> |
| Deprecate all methods that use the default encoding |
| </action> |
| <action issue="IO-338" dev="sebb" type="fix"> |
| When a file is rotated, finish reading previous file prior to starting new one |
| </action> |
| <action issue="IO-354" dev="sebb" type="fix"> |
| Commons IO Tailer does not respect UTF-8 Charset. |
| </action> |
| <action issue="IO-323" dev="sebb" type="fix"> |
| What should happen in FileUtils.sizeOf[Directory] when an overflow takes place? |
| Added Javadoc. |
| </action> |
| <action issue="IO-372" dev="sebb" type="fix"> |
| FileUtils.moveDirectory can produce misleading error message on failiure |
| </action> |
| <action issue="IO-375" dev="sebb" type="update"> |
| FilenameUtils.splitOnTokens(String text) check for '**' could be simplified |
| </action> |
| <action issue="IO-374" dev="sebb" type="update"> |
| WildcardFileFilter ctors should not use null to mean IOCase.SENSITIVE when delegating to other ctors |
| </action> |
| <action issue="IO-362" dev="ggregory" type="fix" due-to="mmadson, ggregory"> |
| IOUtils.contentEquals* methods returns false if input1 == input2, should return true. |
| </action> |
| <action issue="IO-361" dev="ggregory" type="add"> |
| Add API FileUtils.forceMkdirsParent(). |
| </action> |
| <action issue="IO-360" dev="ggregory" type="add"> |
| Add API Charsets.requiredCharsets(). |
| </action> |
| <action issue="IO-359" dev="ggregory" type="add" due-to="yukoba"> |
| Add IOUtils.skip and skipFully(ReadableByteChannel, long). |
| </action> |
| <action issue="IO-358" dev="ggregory" type="add" due-to="yukoba"> |
| Add IOUtils.read and readFully(ReadableByteChannel, ByteBuffer buffer). |
| </action> |
| <action issue="IO-357" dev="ggregory" type="fix" due-to="mortenh"> |
| [Tailer] InterruptedException while the thread is sleeping is silently ignored |
| </action> |
| <action issue="IO-353" dev="ggregory" type="add" due-to="ggregory"> |
| Add API IOUtils.copy(InputStream, OutputStream, int) |
| </action> |
| <action issue="IO-349" dev="ggregory" type="add" due-to="scop"> |
| Add API with array offset and length argument to FileUtils.writeByteArrayToFile. |
| </action> |
| <action issue="IO-352" dev="ggregory" type="fix" due-to="scop"> |
| Spelling fixes. |
| </action> |
| <action issue="IO-348" dev="ggregory" type="add" due-to="plcstpierre"> |
| Missing information in IllegalArgumentException thrown by org.apache.commons.io.FileUtils#validateListFilesParameters. |
| </action> |
| <action issue="IO-345" dev="ggregory" type="add" due-to="mkresse"> |
| Supply a hook method allowing Tailer actively determining stop condition. |
| </action> |
| <action issue="IO-436" dev="ggregory" type="fix" due-to="christoph.schneegans"> |
| Improper Javadoc comment for FilenameUtils.indexOfExtension. |
| </action> |
| <action issue="IO-437" dev="ggregory" type="add"> |
| Make IOUtils.EOF public and reuse it in various classes. |
| </action> |
| </release> |
| |
| <release version="2.4" date="2012-06-12" description="New features and bug fixes."> |
| <action issue="IO-343" dev="ggregory" type="fix" due-to="igorlash"> |
| org.apache.commons.io.comparator Javadoc is inconsistent with real code. |
| </action> |
| <action issue="IO-336" dev="ggregory" type="fix" due-to="rleavelle"> |
| Yottabyte (YB) incorrectly defined in FileUtils. |
| </action> |
| <action issue="IO-269" dev="ggregory" type="add" due-to="sebb"> |
| Tailer locks file from deletion/rename on Windows. |
| </action> |
| <action issue="IO-279" dev="sebb" type="fix" due-to="Sergio Bossa, Chris Baron"> |
| Tailer erroneously considers file as new. |
| </action> |
| <action issue="IO-335" dev="sebb" type="fix"> |
| Tailer#readLines - incorrect CR handling. |
| </action> |
| <action issue="IO-334" dev="sebb" type="fix"> |
| FileUtils.toURLs throws NPE for null parameter; document the behavior. |
| </action> |
| <action issue="IO-333" dev="ggregory" type="add" due-to="fmeschbe"> |
| Export OSGi packages at version 1.x in addition to 2.x. |
| </action> |
| <action issue="IO-320" dev="ggregory" type="add" due-to="ggregory"> |
| Add XmlStreamReader support for UTF-32. |
| </action> |
| <action issue="IO-331" dev="ggregory" type="add" due-to="ggregory"> |
| BOMInputStream wrongly detects UTF-32LE_BOM files as UTF-16LE_BOM files in method getBOM(). |
| </action> |
| <action issue="IO-332" dev="ggregory" type="fix" due-to="liangly"> |
| Improve tailer's reading performance. |
| </action> |
| <action issue="IO-279" dev="ggregory" type="fix"> |
| Improve Tailer performance with buffered reads (see IO-332). |
| </action> |
| <action issue="IO-329" dev="ggregory" type="fix" due-to="tivv"> |
| FileUtils.writeLines uses unbuffered IO. |
| </action> |
| <action issue="IO-327" dev="ggregory" type="add" due-to="ggregory"> |
| Add byteCountToDisplaySize(BigInteger). |
| </action> |
| <action issue="IO-326" dev="ggregory" type="add" due-to="ggregory, kinow"> |
| Add new FileUtils.sizeOf[Directory] APIs to return BigInteger. |
| </action> |
| <action issue="IO-325" dev="ggregory" type="add" due-to="raviprak"> |
| Add IOUtils.toByteArray methods to work with URL and URI. |
| </action> |
| <action issue="IO-324" dev="ggregory" type="add" due-to="raviprak"> |
| Add missing Charset sister APIs to method that take a String charset name. |
| </action> |
| <action issue="IO-319" dev="ggregory" type="fix" due-to="raviprak"> |
| FileUtils.sizeOfDirectory follows symbolic links. |
| </action> |
| </release> |
| |
| <release version="2.3" date="2012-April-10" description="New features and bug fixes."> |
| <action issue="IO-322" dev="ggregory" type="add" due-to="ggregory"> |
| Add and use class Charsets. |
| </action> |
| <action issue="IO-321" dev="ggregory" type="add" due-to="ggregory"> |
| ByteOrderMark UTF_32LE is incorrect. |
| </action> |
| <action issue="IO-318" dev="ggregory" type="add" due-to="ggregory"> |
| Add Charset sister APIs to method that take a String charset name. |
| </action> |
| </release> |
| |
| <release version="2.2" date="2012-March-26" description="New features and bug fixes."> |
| <action issue="IO-313" dev="ggregory" type="add" due-to="ggregory"> |
| Add IOUTils.toBufferedReader(Reader) |
| </action> |
| <!-- Note: the issue was not raised by Manoj, but arose from IO-305 and tests he performed --> |
| <action issue="IO-308" dev="sebb" type="add" due-to="Manoj Mokashi"> |
| Allow applications to provide buffer (or size) for copyLarge methods. |
| </action> |
| <action issue="IO-311" dev="sebb" type="fix" due-to="Robert Muir"> |
| IOUtils.read(InputStream/Reader) ignores the offset parameter |
| </action> |
| <action issue="IO-312" dev="sebb" type="fix"> |
| CharSequenceInputStream(CharSequence s, Charset charset, int bufferSize) ignores bufferSize |
| </action> |
| <action issue="IO-305" dev="sebb" type="add" due-to="Manoj Mokashi"> |
| New copyLarge() method in IOUtils that takes additional offset, length arguments |
| </action> |
| <action issue="IO-300" dev="sebb" type="fix"> |
| FileUtils.moveDirectoryToDirectory removes source directory if destination is a sub-directory |
| </action> |
| <action issue="IO-307" dev="sebb" type="fix"> |
| ReaderInputStream#read(byte[] b, int off, int len) should check for valid parameters |
| </action> |
| <action issue="IO-287" dev="bayard" type="add" due-to="Ron Kuris, Gary Gregory"> |
| Use terabyte (TB), petabyte (PB) and exabyte (EB) in FileUtils.byteCountToDisplaySize(long size) |
| </action> |
| <action issue="IO-306" dev="sebb" type="fix"> |
| ReaderInputStream#read(byte[] b, int off, int len) should always return 0 for length == 0 |
| </action> |
| <action issue="IO-173" dev="sebb" type="add" due-to="Marcos VinÃcius da Silva"> |
| FileUtils.listFiles() doesn't return directories |
| </action> |
| <action issue="IO-276" dev="sebb" type="fix" due-to="nkami"> |
| "FileUtils#deleteDirectoryOnExit(File)" does not work |
| </action> |
| <action issue="IO-273" dev="sebb" type="fix" due-to="sebb"> |
| BoundedInputStream.read() treats max differently from BoundedInputStream.read(byte[]...) |
| </action> |
| <action issue="IO-297" dev="sebb" type="add" due-to="Oleg Kalnichevski"> |
| CharSequenceInputStream to efficiently stream content of a CharSequence |
| </action> |
| <action issue="IO-296" dev="sebb" type="update" due-to="Oleg Kalnichevski"> |
| ReaderInputStream optimization: more efficient reading of small chunks of data |
| </action> |
| <action issue="IO-298" dev="sebb" type="fix" due-to="Christian Schulte"> |
| Various methods of class 'org.apache.commons.io.FileUtils' incorrectly suppress 'java.io.IOException' |
| </action> |
| <action issue="IO-304" dev="ggregory" type="add" due-to="liangly"> |
| The second constructor of Tailer class does not pass 'delay' to the third one |
| </action> |
| <action issue="IO-303" dev="ggregory" type="add" due-to="fabian.barney"> |
| TeeOutputStream does not call branch.close() when main.close() throws an exception |
| </action> |
| <action issue="IO-302" dev="ggregory" type="add" due-to="jsteuerwald, detinho"> |
| ArrayIndexOutOfBoundsException in BOMInputStream when reading a file without BOM multiple times |
| </action> |
| <action issue="IO-301" dev="ggregory" type="add" due-to="kaykay.unique"> |
| Add IOUtils.closeQuietly(Selector) necessary |
| </action> |
| <action issue="IO-292" dev="sebb" type="add" due-to="sebb"> |
| IOUtils.closeQuietly() should take a ServerSocket as a parameter |
| </action> |
| <action issue="IO-290" dev="sebb" type="add" due-to="sebb"> |
| Add read/readFully methods to IOUtils |
| </action> |
| <action issue="IO-288" dev="sebb" type="add" due-to="Georg Henzler"> |
| Supply a ReversedLinesFileReader |
| </action> |
| <action issue="IO-291" dev="ggregory" type="add" due-to="ggregory"> |
| Add new function FileUtils.directoryContains. |
| </action> |
| <action issue="IO-275" dev="sebb" type="add" due-to="CJ Aspromgos"> |
| FileUtils.contentEquals and IOUtils.contentEquals - Add option to ignore "line endings" |
| Added contentEqualsIgnoreEOL methods to both classes |
| </action> |
| </release> |
| |
| <release version="2.1" date="2011-Sep-28" description="New features and bug fixes."> |
| <action dev="ggregory" type="add" issue="IO-285" due-to="ggregory"> |
| Use standard Maven directory layout |
| </action> |
| <action dev="ggregory" type="add" issue="IO-284" due-to="ggregory"> |
| Add IOUtils API toString for URL and URI to get contents |
| </action> |
| <action dev="ggregory" type="add" issue="IO-282" due-to="ggregory"> |
| Add API FileUtils.copyFile(File input, OutputStream output) |
| </action> |
| <action dev="sebb" type="fix" issue="IO-280" due-to="sebb"> |
| Dubious use of mkdirs() return code |
| </action> |
| <action type="fix" issue="IO-277"> |
| ReaderInputStream enters infinite loop when it encounters an unmappable character |
| </action> |
| <action type="fix" issue="IO-264"> |
| FileUtils.moveFile() Javadoc should specify FileExistsException thrown |
| </action> |
| <action type="add" issue="IO-262"> |
| FileAlterationObserver has no getter for FileFilter |
| </action> |
| <action type="add" issue="IO-261"> |
| Add FileUtils.getFile API with varargs parameter |
| </action> |
| <action type="fix" issue="IO-260"> |
| ClassLoaderObjectInputStream does not handle Proxy classes |
| </action> |
| <action type="update" issue="IO-259"> |
| FileAlterationMonitor.stop(boolean allowIntervalToFinish) |
| </action> |
| <action type="add" issue="IO-182"> |
| Add new APPEND parameter for writing string into files |
| </action> |
| <action dev="sebb" type="fix" issue="IO-274" due-to="Frank Grimes"> |
| Tailer returning partial lines when reaching EOF before EOL |
| </action> |
| <action dev="sebb" type="fix" issue="IO-266" due-to="Igor Smereka"> |
| FileUtils.copyFile() throws IOException when copying large files to a shared directory (on Windows) |
| </action> |
| <action dev="sebb" type="fix" issue="IO-263" due-to="Gil Adam"> |
| FileSystemUtils.freeSpaceKb throws exception for Windows volumes with no visible files. |
| Improve coverage by also looking for hidden files. |
| </action> |
| <action dev="sebb" type="add" issue="IO-251" due-to="Marco Albini"> |
| Add new read method "toByteArray" to handle InputStream with known size. |
| </action> |
| </release> |
| |
| <release version="2.0.1" date="2010-Dec-26"> |
| <action type="update"> |
| TODO: Convert RELEASE-NOTES.txt from 2.0.1? |
| </action> |
| </release> |
| |
| <release version="2.0" date="2010-Oct-18"> |
| <action type="update"> |
| TODO: Convert RELEASE-NOTES.txt from 2.0? |
| </action> |
| </release> |
| |
| <release version="1.4" date="2008-Jan-21"> |
| <action type="update"> |
| TODO: Convert RELEASE-NOTES.txt from 1.4? |
| </action> |
| </release> |
| |
| <release version="1.3.2" date="2007-Jul-02" description="Bug fixes."> |
| <action dev="jochen" type="fix" issue="IO-115"> |
| Some tests, which are implicitly assuming a Unix-like file |
| system, are now skipped on Windows. |
| </action> |
| <action dev="jochen" type="fix" issue="IO-116"> |
| Created the FileCleaningTracker, basically a non-static |
| version of the FileCleaner, which can be controlled by |
| the user. |
| </action> |
| <action dev="bayard" type="fix" issue="IO-117" due-to="Hiroshi Ikeda"> |
| EndianUtils - both readSwappedUnsignedInteger(...) methods could |
| return negative numbers due to int/long casting. |
| </action> |
| </release> |
| </body> |
| </document> |