[ http://issues.apache.org/jira/browse/IO-89?page=comments#action_12423156 ] Niall Pemberton commented on IO-89: -----------------------------------
I tried it out that way first (I have the changes ready to commit) with SizeFileFilter - but in my mind having the limits included seems slightly more suitable - for example up to and including 2MB or 2MB and over seems more desirable as the default behaviour. It also makes the "size range" filter simpler (uses 3 filters, rather than 4). Having said that, if others agree with you then I'm not strongly fixed to this pov. I expected the issue to be more over backwards compatibility - which would be a shame since the main issue is consistency of behaviour and what it will allow if they are consistent. > 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.3 > > > 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]
