| <?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> |
| <release version="2.12.0" date="2021-MM-DD" description="Java 8 required."> |
| <!-- FIX --> |
| <action issue="IO-697" dev="kinow" type="fix" due-to="otter606"> |
| IOUtils.toByteArray size validation does not match documentation. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Fix Javadoc links to the JRE Javadoc 8. |
| </action> |
| <action issue="IO-744" dev="ggregory" type="fix" due-to="RBRi, Gary Gregory"> |
| FileWriterWithEncoding for an existing file no longer truncates the file. #251. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| A null Charset or Charset name in FileWriterWithEncoding constructors uses the default Charset. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Davide Angelocola"> |
| Fix usage of assertNotNull #269. |
| </action> |
| <action issue="IO-727" dev="ggregory" type="fix" due-to="trungPa, Gary Gregory"> |
| FilenameUtils directoryContains() should handle files with the same prefix #217. |
| </action> |
| <action issue="IO-746" dev="ggregory" type="add" due-to="Davide Angelocola"> |
| Drop unnecessary casts and conversions #267. |
| </action> |
| <action issue="IO-748" dev="ggregory" type="fix" due-to="Dirk Heinrichs, Gary Gregory, Elango Ravi"> |
| FileUtils.moveToDirectory() exception documentation and exception message error. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| ThreadMonitor.sleep(Duration) ignores nanoseconds. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Arturo Bernal"> |
| Fix Javadoc in ThreadMonitor#run() method. #273. |
| </action> |
| <action issue="IO-749" dev="ggregory" type="fix" due-to="haihuiyang, Gary Gregory"> |
| FileUtils.listFiles() does not list matching files if File parameter is a symbolic link. |
| </action> |
| <action dev="ggregory" type="fix" due-to="niranjanghule, Gary Gregory"> |
| Fix typo in Javadocs for FileUtils#convertFileCollectionToFileArray() #276. |
| </action> |
| <action dev="ggregory" type="fix" due-to="DaGeRe, Gary Gregory"> |
| Avoid Code Duplication: Reuse Sleep from ThreadMonitor #66. |
| </action> |
| <action issue="IO-750" dev="ggregory" type="fix" due-to="Sita Geßner, Sebastian Peters, Gary Gregory"> |
| FileUtils.iterateFiles also lists directories. |
| </action> |
| <action issue="IO-721" dev="ggregory" type="fix" due-to="Dirk Heinrichs, Gary Gregory"> |
| Wrong exception message in FileUtils.setLastModified(File, File). |
| </action> |
| <action issue="IO-717" dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> |
| Infinite loop in ReaderInputStream instead of throwing exception for CodingErrorAction.REPORT. |
| </action> |
| <action issue="IO-716" dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> |
| ReaderInputStream enter infinite loop for too small buffer sizes. |
| </action> |
| <action issue="IO-638" dev="ggregory" type="fix" due-to="Thayne McCombs, Gary Gregory"> |
| Infinite loop in CharSequenceInputStream.read for 4-byte characters with UTF-8 and 3-byte buffer. |
| </action> |
| <action issue="IO-638" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| PathUtils.setReadOnly(Path, boolean, LinkOption...) should add READ_* file attributes when using POSIX. |
| </action> |
| <action issue="IO-638" dev="ggregory" type="fix" due-to="Gary Gregory"> |
| PathUtils.setReadOnly(Path, boolean, LinkOption...) readOnly argument is always assumed true on POSIX. |
| </action> |
| <action issue="IO-729" dev="ggregory" type="fix" due-to="Rob Spoor, Gary Gregory"> |
| Prevent IllegalArgumentExceptions in BrokenInputStream/Reader/OutputStream/Writer #278. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| FileUtils.copyURLToFile(URL, File, int, int) leaks its URLConnection. |
| Called by FileUtils.copyURLToFile(URL, File). |
| </action> |
| <action issue="IO-714" dev="ggregory" type="fix" due-to="kevinwang1975, Gary Gregory"> |
| Fixed ReaderInputStream not calling CharsetEncoder.flush issue #283. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Arturo Bernal"> |
| Minor changes #287. |
| </action> |
| <action issue="IO-756" dev="ggregory" type="fix" due-to="wodencafe, Gary Gregory, Bruno P. Kinoshita"> |
| Update FileWriterWithEncoding to extend ProxyWriter #296. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Initialize the message of an IOExceptionList to a default if null. |
| </action> |
| <action issue="IO-751" dev="ggregory" type="fix" due-to="Gary Gregory, Richard Cyganiak"> |
| When deleting symlinks, File/PathUtils.deleteDirectory() changes file permissions of the target. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| ReaderInputStream maps null Charset, Charset name, and CharsetEncoder to the platform default instead of throwing a NullPointerException. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| CharSequenceInputStream maps null Charset and Charset name to the platform default instead of throwing a NullPointerException. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| WriterOutputStream maps null Charset, Charset name, and CharsetEncoder name to the platform default instead of throwing a NullPointerException. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Chad Wilson, Gary Gregory"> |
| FileUtils.copyURLToFile should create target parent directories and overwrite target file #319. |
| </action> |
| <action issue="IO-484" dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> |
| Fix incorrect FilenameUtils Javadoc for null bytes #310. |
| </action> |
| <action issue="IO-484" dev="ggregory" type="fix" due-to="Arturo Bernal"> |
| Change to uppercase variable constant. #323. |
| </action> |
| <action issue="IO-484" dev="ggregory" type="fix" due-to="David Huang, Gary Gregory"> |
| IOCase.isCaseSensitive(IOCase) result is backward #325. |
| </action> |
| <action issue="IO-758" dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> |
| Deprecate PathUtils.NOFOLLOW_LINK_OPTION_ARRAY in favor of noFollowLinkOptionArray(). |
| </action> |
| <action dev="ggregory" type="fix" due-to="Marcono1234, Gary Gregory"> |
| Improve ReaderInputStream documentation #291. |
| </action> |
| <action dev="ggregory" type="fix" due-to="richarda23"> |
| Fix misleading comments in FileFilterTest #334. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Diego Marcilio"> |
| Add missing javadoc for exceptions thrown for invalid arguments #339. |
| </action> |
| <action dev="ggregory" type="fix" due-to="richarda23"> |
| FileFilterTest minor fixes #340. |
| </action> |
| <action issue="IO-764" dev="ggregory" type="fix" due-to="DaGeRe, Gary Gregory"> |
| IOUtils.write() throws OutOfMemoryError/NegativeArraySizeException while writing big strings #343. |
| </action> |
| <action issue="IO-768" dev="ggregory" type="fix" due-to="Marcono1234, Michael Osipov"> |
| Add reserved Windows file names CONIN$ and CONOUT$ to FileSystem #355. |
| </action> |
| <action issue="IO-773" dev="ggregory" type="fix" due-to="Dominik Reinarz, Gary Gregory"> |
| RegexFileFilter is no longer Serializable. |
| </action> |
| <action issue="IO-763" dev="ggregory" type="fix" due-to="Richard Adams, Gary Gregory"> |
| [Javadoc] FileFilterUtils doc does not match impl: missing some file filters. |
| </action> |
| <action issue="IO-762" dev="ggregory" type="fix" due-to="Leonidas Chiron, Gary Gregory"> |
| FileSystem.WINDOWS.isReservedFileName doesn't check for file extension. |
| </action> |
| <action issue="IO-772" dev="ggregory" type="fix" due-to="Dan Ziemba, Gary Gregory"> |
| Confusing Javadoc on IOUtils#resourceToURL() and other resource* methods. |
| </action> |
| <action issue="IO-443" dev="ggregory" type="fix" due-to="Dan Ziemba, Gary Gregory"> |
| FileUtils.copyFile methods throw an unnecessary "Failed to copy full contents from" exception. |
| </action> |
| <action issue="IO-564" dev="ggregory" type="fix" due-to="Hao Zhong, Bernd Eckenfels, Pascal Schumacher, Gary Gregory"> |
| Pick up Javadoc from super for override write() methods in AbstractByteArrayOutputStream and ByteArrayOutputStream. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Marc Wrobel"> |
| Fix minor typos #367. |
| </action> |
| <action issue="IO-776" dev="kinow" type="fix" due-to="Chris Povirk"> |
| Fix parameters to requireNonNull call in DeferredOutputSteam #368. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Fix PathUtils.copyFileToDirectory(URL,Path,CopyOption[]). |
| </action> |
| <action issue="IO-386" dev="ggregory" type="fix" due-to="Sebb, Bernd Eckenfels, zhipengxu, Gary Gregory"> |
| FileUtils.doCopyFile uses different methods to check the file sizes. |
| </action> |
| <!-- ADD --> |
| <action type="add" dev="ggregory" due-to="Gary Gregory"> |
| Add GitHub coverage.yml. |
| </action> |
| <action issue="IO-726" dev="ggregory" type="fix" due-to="shollander, Gary Gregory"> |
| Add MemoryMappedFileInputStream #215. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add BrokenReader.INSTANCE. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedBufferedReader. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedFilterReader. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedFilterWriter. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add StringInputStream. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedFilterInputStream. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedFilterOutputStream. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add BrokenInputStream.INSTANCE. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ClosedInputStream.INSTANCE and deprecate CLOSED_INPUT_STREAM. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ClosedReader.INSTANCE and deprecate CLOSED_READER. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add BrokenWriter.INSTANCE. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ClosedOutputStream.INSTANCE and deprecate CLOSED_OUTPUT_STREAM. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add ClosedWriter.INSTANCE and deprecate CLOSED_WRITER. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullOutputStream.INSTANCE and deprecate NULL_OUTPUT_STREAM. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullPrintStream.INSTANCE and deprecate NULL_PRINT_STREAM. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullWriter.INSTANCE and deprecate NULL_WRITER. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullInputStream.INSTANCE. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add NullReader.INSTANCE. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.readString(Path, Charset). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.newOutputStream(File, boolean). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.newOutputStream(Path, boolean). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add UncheckedAppendable. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and reuse UncheckedIOExceptions. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.getTempDirectory(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileSystem.getNameSeparator(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileSystem.normalizeSeparators(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.isNewer(Path, FileTime, LinkOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.isNewer(Path, Instant, LinkOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add AgeFileFilter.AgeFileFilter(Instant). |
| Add AgeFileFilter.AgeFileFilter(Instant, boolean). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.lastModifiedFileTime(File). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileTimes. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.waitFor(Path, Duration, LinkOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add org.apache.commons.io.input.Tailer.getDelayDuration(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileUtils.current(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use PathUtils.setLastModifiedTime(Path) for more precision. |
| Add and use PathUtils.setLastModifiedTime(Path, Path) for more precision. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use PathUtils.isNewer(Path, ChronoZonedDateTime, LinkOption...) for more precision. |
| Add and use PathUtils.isNewer(Path, Path) for more precision. |
| Add and use FileUtils.isNewer(File, FileTime) for more precision. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use PathUtils.isOlder(Path, FileTime, LinkOption...). |
| Add and use PathUtils.isOlder(Path, Instant, LinkOption...). |
| Add and use PathUtils.isOlder(Path, long, LinkOption...). |
| Add and use PathUtils.isOlder(Path, Path). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use PathUtils.sizeOf(Path). |
| Add and use PathUtils.sizeOfAsBigInteger(Path). |
| Add and use PathUtils.sizeOfDirectory(Path). |
| Add and use PathUtils.sizeOfDirectoryAsBigInteger(Path). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use IOCase.value(IOCase, IOCase). |
| </action> |
| <action dev="jonfreedman" type="add" due-to="Jon Freedman, Gary Gregory"> |
| Add Tailer.Tailable interface to allow tailing of remote files for example using jCIFS. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use RandomAccessFileMode. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.writeString(Path, CharSequence, Charset, OpenOption...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtiFiles.getFileAttributeView() shorthands: |
| - PathUtils.getAclFileAttributeView(Path, LinkOption...) |
| - PathUtils.getDosFileAttributeView(Path, LinkOption...) |
| - PathUtils.getPosixFileAttributeView(Path, LinkOption...) |
| </action> |
| <action issue="IO-747" dev="mgrigorov" type="add"> |
| Make commons-io a JPMS module by adding module-info.class. |
| </action> |
| <action issue="IO-753" dev="ggregory" type="add" due-to="SebastianDietrich, Gary Gregory"> |
| Add IOUtils method to copy output stream to input stream #281. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.isPosix(Path, LinkOption...). #290 |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.readAttributes(Path, Class, LinkOption...). #290 |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOExceptionList.checkEmpty(List, Object). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOBiConsumer, IOTriConsumer, IOComparator, IOUnaryOperator, IOBinaryOperator. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and reuse IOConsumer forAll(*), forEach(*), and forEachIndexed(*). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add CharsetEncoders. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add CharsetDecoders. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.createParentDirectories(Path, LinkOption, FileAttribute...). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Update FileEntry to use FileTime instead of long for file time stamps. |
| </action> |
| <action issue="IO-680" dev="ggregory" type="add" due-to="XenoAmess, sebbASF, Gary Gregory"> |
| Add more tests for IOUtils.contentEqualsIgnoreEOL #137. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Reduce boilerplate through new UncheckedIO class and friends in org.apache.commons.io.function. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.touch(Path). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add FileSystem.getIllegalFileNameCodePoints(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Isira Seneviratne, Gary Gregory"> |
| Add FileUtils.isFileNewer(File, ChronoLocalDate, OffsetTime). |
| Add FileUtils.isFileNewer(File, OffsetDateTime). |
| Add FileUtils.isFileOlder(File, ChronoLocalDate, OffsetTime). |
| Add FileUtils.isFileOlder(File, OffsetDateTime). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOBiConsumer.noop(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOUtils.closeQuietly(Iterable<Closeable>). |
| Add IOUtils.closeQuietly(Stream<Closeable>). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add Charsets.toCharset(Charset, Charset). |
| Add Charsets.toCharset(String, Charset). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add XmlStreamWriter(OutputStream, Charset). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add PathUtils.getLastModifiedFileTime(*). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOBiFunction, IOTriFunction, IOQuadFunction, IOPredicate, FilesUncheck. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOUtils.consume(Reader). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOSupplier.asSupplier(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOFunction.asFunction(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOConsumer.asConsumer(). |
| </action> |
| <!-- UPDATE --> |
| <action dev="kinow" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump actions/cache from 2.1.6 to 3.0.7 #307, #337. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump actions/checkout from 2.3.4 to 3 #286, #298, #330. |
| </action> |
| <action dev="kinow" type="update" due-to="Dependabot"> |
| Bump actions/setup-java from 2 to 3 #346. |
| </action> |
| <action dev="kinow" type="update" due-to="Dependabot"> |
| Bump github/codeql-action from 1 to 2 #353. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump Maven Javadoc plugin from 3.2.0 to 3.4.1. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump spotbugs-maven-plugin from 4.2.3 to 4.7.1.1 #250, #259, #272, #274, #285, #288, #289, #305, #315, #326, #338, #360, #366, #370. |
| </action> |
| <action dev="kinow" type="update" due-to="Gary Gregory, Dependabot"> |
| Bump spotbugs from 4.5.2 to 4.7.1 #313, #317, #357. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump JUnit from 5.7.2 to 5.8.2. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump maven-enforcer-plugin from 3.0.0-M3 to 3.1.0 #255, #363. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump checkstyle from 8.44 to 9.3 #256, #257, #266, #279, #292. #308. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump junit-bom from 5.8.0-M1 to 5.9.0 #260, #271, #275, #309. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump mockito-inline from 3.11.2 to 4.7.0 #262, #264, #282, #306, #314, #331, #348, #359. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump jmh.version from 1.32 to 1.35 #258, #316, #342. |
| </action> |
| <action dev="kinow" type="update" due-to="Dependabot"> |
| Bump moditect-maven-plugin from 1.0.0.RC1 to 1.0.0.RC2 #280. |
| </action> |
| <action dev="kinow" type="update" due-to="Dependabot, Gary Gregory"> |
| Bump junit-pioneer from 1.4.2 to 1.7.1 #304. #335, #362. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump japicmp-maven-plugin from 0.15.3 to 0.15.7. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump commons-parent from 52 to 53. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump maven-antrun-plugin from 3.0.0 to 3.1.0 #354. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump commons.surefire.version 3.0.0-M5 to 3.0.0-M7. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump PMD implementation from 6.44.0 to 6.47.0. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump PMD plugin from 3.16.0 to 3.17.0. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Bump apache-rat from 0.13 to 0.14. |
| </action> |
| <action dev="kinow" type="update" due-to="Dependabot"> |
| Bump exec-maven-plugin from 3.0.0 to 3.1.0 #369. |
| </action> |
| </release> |
| <release version="2.11.0" date="2021-07-09" description="Java 8 required."> |
| <!-- FIX --> |
| <action issue="IO-741" dev="ggregory" type="fix" due-to="Zach Sherman"> |
| FileUtils.listFiles does not list matching files if File parameter is a symbolic link. |
| </action> |
| <action issue="IO-724" dev="ggregory" type="fix" due-to="liran2000"> |
| FileUtils#deleteDirectory(File) exception Javadoc inaccurate update #245. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Arturo Bernal"> |
| Minor changes #243. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Arturo Bernal"> |
| Replace construction of FileInputStream and FileOutputStream objects with Files NIO APIs. #221. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Fix IndexOutOfBoundsException in IOExceptionList constructors. |
| </action> |
| <action dev="ggregory" type="fix" due-to="Gary Gregory"> |
| Remove IOException from the method signatures that no longer throw IOException. |
| This maintains binary compatibility but not source compatibility. |
| - FilenameUtils |
| directoryContains(String, String) |
| - BoundedReader |
| BoundedReader(java.io.Reader, int) |
| - IOUtils |
| lineIterator(java.io.InputStream, Charset) |
| lineIterator(java.io.InputStream, String) |
| toByteArray(String) |
| toInputStream(CharSequence, String) |
| toInputStream(String, String) |
| toString(byte[]) |
| toString(byte[], String) |
| </action> |
| <!-- ADD --> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Add SymbolicLinkFileFilter. |
| </action> |
| <action dev="ggregory" type="update" due-to="trncate"> |
| Add test to make sure the setter of AndFileFilter works correctly #244. |
| </action> |
| <action dev="ggregory" type="update" due-to="Gary Gregory"> |
| Add XmlStreamReader(Path). |
| </action> |
| <!-- UPDATE --> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump mockito-inline from 3.11.0 to 3.11.2 #247. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump jmh.version from 1.27 to 1.32 #237. |
| </action> |
| </release> |
| <!-- The release date is the date RC is cut --> |
| <release version="2.10.0" date="2021-06-10" description="Java 8 required."> |
| <!-- FIX --> |
| <action issue="IO-733" dev="ggregory" type="fix" due-to="Jim Sellers, Gary Gregory"> |
| RegexFileFilter uses the path and file name instead of just the file name. |
| </action> |
| <action issue="IO-734" dev="ggregory" type="fix" due-to="Eric Norman"> |
| The OSGi manifest now contains sun.* import packages #239. |
| </action> |
| <action issue="IO-585" dev="ggregory" type="fix" due-to="Adam McClenaghan"> |
| Sanitize double slash after prefix #79. |
| </action> |
| <!-- ADD --> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use RegexFileFilter.toString(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use RegexFileFilter.RegexFileFilter(Pattern, Function<Path>, String>) |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add and use IOCase.isCaseSensitive(IOCase). |
| </action> |
| <!-- UPDATES --> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump actions/cache from 2.1.5 to 2.1.6 #238. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump junit-pioneer from 1.4.1 to 1.4.2 #240. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump checkstyle from 8.42 to 8.44 #241, #248. |
| </action> |
| <action dev="ggregory" type="update" due-to="Dependabot"> |
| Bump mockito-inline from 3.10.0 to 3.11.0 #242. |
| </action> |
| </release> |
| <release version="2.9.0" date="2021-05-22" 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> |
| <action issue="IO-429" dev="ggregory" type="fix" due-to="Ivan Leskin, Ivan Leskin"> |
| Check for long streams in IOUtils.toByteArray #175. |
| </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="maxxedev, 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> |
| <action dev="ggregory" type="add" due-to="Rob Spoor, Gary Gregory"> |
| Add AbstractCharacterFilterReader(Reader, IntPredicate), #227. |
| Add CharacterFilterReader(Reader, IntPredicate), #227. |
| Add CharacterFilterReaderIntPredicateTest, #227. |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add IOConsumer.noop(). |
| </action> |
| <action dev="ggregory" type="add" due-to="Gary Gregory"> |
| Add constructor ThresholdingOutputStream(int, IOConsumer, IOFunction) and make the class concrete. |
| </action> |
| <action dev="ggregory" type="add" due-to="nstdspace, Gary Gregory"> |
| Add constructor accepting collection of file alteration observers #236. |
| </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.5.0, #158, #164, #165, #180, #199, #213, #224, #302. |
| </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.2 #200, #232. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Update from Apache Commons Lang 3.11 to 3.12.0. |
| </action> |
| <action type="update" dev="ggregory" due-to="Arturo Bernal"> |
| Minor improvements #233. |
| </action> |
| <action type="update" dev="ggregory" due-to="Arturo Bernal"> |
| Simplify Assertions in tests #234. |
| </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.9.0, #127, #135, #138. |
| </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.6.0 #134, #332. |
| </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.Observer 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 forever |
| 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 failure |
| </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> |