[ http://issues.apache.org/jira/browse/IO-89?page=all ]
Niall Pemberton updated IO-89: ------------------------------ Fix Version/s: 1.4 (was: 1.3) I've corrected the AgeFileFilter and SizeFileFilter javadocs. Another solution would be to add two new equivalent (but without the inconsistency) filters - LengthFileFilter (uses file.length() ) & LastModifiedFileFilter (uses file.lastModified()) and deprecate SizeFileFilter & AgeFileFilter. Whatever the solution I'm not sure when/if I'll get round to this, so I've punted the fix version to 1.4 for now. > Inconsistency in SizeFileFilter and AgeFileFilter implementations > ----------------------------------------------------------------- > > Key: IO-89 > URL: http://issues.apache.org/jira/browse/IO-89 > Project: Commons IO > Issue Type: Bug > Components: Filters > Affects Versions: 1.2 > Reporter: Niall Pemberton > Priority: Minor > Fix For: 1.4 > > > Theres an inconsistency (bug?) in the implementation of SizeFileFilter and > AgeFileFilter. > In SizeFileFilter, using an "acceptLarger" parameter of true actually accepts > files with a size equal to and larger, whereas > specifying an "acceptLarger" parameter of false only accepts smaller files. > The same is true for AgeFileFilter, using an "acceptOlder" parameter of true > actually accepts files either the same age or older, whereas > specifying an "acceptOlder" parameter of false only accepts newer files. > A big benefit of resolving these inconsistencies would mean that creating > filters for any condition (i.e. <, >, <=, >= or =) becomes > alot easier. For example if the AgeFileFilter did only do either newer or > older, then creating a filters for "the same age or older" > or "the same age or younger" could be done in the following way: > IOFileFilter equalOlder = new NotFileFilter(new AgeFileFilter(cutoff, > false)); > IOFileFilter equalYounger = new NotFileFilter(new AgeFileFilter(cutoff, > true)); > For SizeFileFilter I propose changing the logic to the following: > if (acceptLarger) { > return file.length() >= size; > } else { > return file.length() <= size; > } > (This would mean that "new SizeFileFilter(cutoff)" would operate the same way) > I have added isOlderFile() methods to FileUtils and propose that > AgeFileFilter is changed to the following: > if (acceptOlder) { > return FileUtils.isFileOlder(file, cutoff); > } else { > return FileUtils.isFileNewer(file, cutoff); > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]