Thank you for your analysis and archeology Niall. Can we save this information in the readme? Or in perhaps a better place would be in comments in a findbugs-exclude-filter.xml?
Gary Gregory Senior Software Engineer Rocket Software 3340 Peachtree Road, Suite 820 . Atlanta, GA 30326 . USA Tel: +1.404.760.1560 Email: ggreg...@seagullsoftware.com Web: seagull.rocketsoftware.com > -----Original Message----- > From: Niall Pemberton [mailto:niall.pember...@gmail.com] > Sent: Friday, October 15, 2010 13:11 > To: Commons Developers List > Subject: Re: [VOTE] Release Commons IO 2.0 based on RC5 > > Sebb has previously raised issues highlighted by FindBugs and I ran it > before cutting RC5. We have resolved a number of FindBugs issues in > this release (Commons IO 1.4 flagged 13 issues and 2.0-RC5 has 9), > some of them are not issues and the rest we decided not to resolve. Of > the 9 FindBugs issues 6 are pre-existing ones that were in the > previous 1.4 release and 3 are new in this release. > > On the new issues raised: > > 1) FileEntry.setChildren(FileEntry[]) may expose internal > representation by storing an externally mutable object > This impl. is used internally by FileAlterationObserver to refresh and > update the state of files it is monitoring and in that context this is > not an issue. If people re-use that impl. elsewhere then they need to > take care - but its not its primary purpose here and I think its OK. > 2) The ByteArrayOutputStream "synchronization" issue is a false > positive and was discussed here: > https://issues.apache.org/jira/browse/IO-214 > 3) The ByteArrayOutputStream "may fail to close stream" issue is a > false positive since close() does nothing in that impl > > On the pre-existing issues from IO 1.4: > > 1) The two issues regarding FileUtils ignoring the exceptional return > from setLastModified() were discussed here: > https://issues.apache.org/jira/browse/IO-215 > 2) The two issues regarding FileUtils ignoring the exceptional return > from mkdirs() are false positives IMO since the following line in both > those methods checks for the existence of the directory and throws an > exception if it doesn't exist. > 3) DeferredFileOutputStream is reporting one bug - but no details are > given in the report!! > 4) LockableFileWriter ignoring the exceptional return value delete() > was discussed here: > https://issues.apache.org/jira/browse/IO-216 > > So in summary we resolved 7 FindBugs issues that were present in the > last release. 3 new ones introduced in this release, but which are not > an issue IMO and the remaining 6 issue from the last release have been > considered. So I don't believe anything here should delay the 2.0 > release. > > Thanks > > Niall > > On Fri, Oct 15, 2010 at 6:56 PM, Gary Gregory > <ggreg...@seagullsoftware.com> wrote: > > Hi All: > > > > I downloaded and tested building on Oracle Java 1.6.0_21 64 bit on Windows > Vista 64 bit with Ant 1.8.1 and Maven 2.2.1. All is well with the build and > unit tests. > > > > Findbugs is not part of the build, so I added it and I have some questions: > > > > (1) doCopyDirectory and another methods that call setLastModified. > > > > In: > > > > private static void doCopyDirectory(File srcDir, File destDir, FileFilter > filter, > > boolean preserveFileDate, List<String> exclusionList) throws > IOException { > > ... > > // Do this last, as the above has probably affected directory > metadata > > if (preserveFileDate) { > > destDir.setLastModified(srcDir.lastModified()); > > } > > } > > > > > > Yields: > > > > FileUtils.java:1101 org.apache.commons.io.FileUtils.doCopyDirectory(File, > File, FileFilter, boolean, List) ignores exceptional return value of > java.io.File.setLastModified(long) > > > > Since the caller specifically asks for /preserveFileDate/ I would assume > that the cares whether it worked or not. Otherwise this should be > "quietlyTryToPreserveFileDate" > > > > It seems like the method should either return a Boolean or throw an > exception. > > > > Same issue with: > > > > FileUtils.java:827 org.apache.commons.io.FileUtils.doCopyFile(File, File, > boolean) ignores exceptional return value of > java.io.File.setLastModified(long) > > > > Same kind of issue with: > > > > FileUtils.java:2060 > org.apache.commons.io.FileUtils.moveDirectoryToDirectory(File, File, boolean) > ignores exceptional return value of java.io.File.mkdirs() > > FileUtils.java:2135 > org.apache.commons.io.FileUtils.moveFileToDirectory(File, File, boolean) > ignores exceptional return value of java.io.File.mkdirs() > > > > There are a couple more that I am looking at... > > > > - > > Gary Gregory > > > >> -----Original Message----- > >> From: Simone Tripodi [mailto:simone.trip...@gmail.com] > >> Sent: Friday, October 15, 2010 01:17 > >> To: Commons Developers List > >> Subject: Re: [VOTE] Release Commons IO 2.0 based on RC5 > >> > >> Hi Niall, > >> should the clirr report link located on > >> http://people.apache.org/~niallp/io-2.0-rc5/site/clirr-report.html > >> instead of http://people.apache.org/~niallp/io-2.0-rc4/site/clirr- > report.html? > >> > >> I can't speak about the implementation stuff because my knowledge on > >> IO is not good enough, but release looks good, mvn stuff are ok, > >> generated site (known broken links a part) seems ok. > >> Tested with both java5 and java6: > >> > >> --------------------------------------------------------------------------- > --- > >> ------------------------------------------- > >> > >> Darwin Simones-Computer-2.local 10.4.0 Darwin Kernel Version 10.4.0: > >> Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386 i386 > >> > >> java version "1.6.0_20" > >> Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065) > >> Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode) > >> > >> Apache Maven 3.0 (r1004208; 2010-10-04 13:50:56+0200) > >> Java version: 1.6.0_20 > >> Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home > >> Default locale: en_US, platform encoding: MacRoman > >> OS name: "mac os x" version: "10.6.4" arch: "x86_64" Family: "mac" > >> > >> Tests run: 744, Failures: 0, Errors: 0, Skipped: 0 > >> > >> --------------------------------------------------------------------------- > --- > >> ------------------------------------------- > >> > >> Darwin Simones-Computer-2.local 10.4.0 Darwin Kernel Version 10.4.0: > >> Fri Apr 23 18:28:53 PDT 2010; root:xnu-1504.7.4~1/RELEASE_I386 i386 > >> > >> java version "1.5.0_24" > >> Java(TM) 2 Runtime Environment, Standard Edition (build > >> 1.5.0_24-b02-357-10M3065) > >> Java HotSpot(TM) Client VM (build 1.5.0_24-149, mixed mode, sharing) > >> > >> Apache Maven 3.0 (r1004208; 2010-10-04 13:50:56+0200) > >> Java version: 1.5.0_24 > >> Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home > >> Default locale: en_US, platform encoding: MacRoman > >> OS name: "mac os x" version: "10.6.4" arch: "i386" Family: "unix" > >> > >> Tests run: 744, Failures: 0, Errors: 0, Skipped: 0 > >> > >> I don't know if my vote is binding or not, BTW I express my +1 > >> Have a nice day, > >> Simo > >> > >> http://people.apache.org/~simonetripodi/ > >> http://www.99soft.org/ > >> > >> > >> > >> On Fri, Oct 15, 2010 at 4:14 AM, Niall Pemberton > >> <niall.pember...@gmail.com> wrote: > >> > I have prepared Commons IO 2.0 RC5. The main changes since RC4 was to > >> > rename the FilesystemObserver/Monitor to > >> > FileAlterationObserver/Monitor and improvements to the test coverage. > >> > > >> > The RC3 changes were improvements to some tests which were causing > >> > intermittent failures in Gump & Continuum and JavaDoc improvements. > >> > For details about Continuum builds/failures, see: > >> > http://people.apache.org/~niallp/io-2.0/IOFailures.html > >> > > >> > The distro is here: > >> > http://people.apache.org/~niallp/io-2.0-rc5/ > >> > > >> > Release Notes: > >> > http://people.apache.org/~niallp/io-2.0-rc5/RELEASE-NOTES.txt > >> > > >> > Site: > >> > http://people.apache.org/~niallp/io-2.0-rc5/site/ > >> > > >> > Maven Stuff: > >> > http://people.apache.org/~niallp/io-2.0-rc5/maven/ > >> > > >> > Some Notes: > >> > > >> > * There is one error on the clirr report - which is a false positive > >> > (a generic method that is erased) > >> > http://people.apache.org/~niallp/io-2.0-rc4/site/clirr-report.html > >> > * Links to the JavaDoc versions on the site don't work (they will when > >> > its deployed to the right location) > >> > > >> > Thanks > >> > > >> > Niall > >> > > >> > --------------------------------------------------------------------- > >> > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> > For additional commands, e-mail: dev-h...@commons.apache.org > >> > > >> > > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org