Author: scolebourne Date: Sun Feb 13 04:09:53 2005 New Revision: 153623 URL: http://svn.apache.org/viewcvs?view=rev&rev=153623 Log: Fix bug in makeCVSAware that rendered the method useless bug 33023, from Masato Tezuka
Modified: jakarta/commons/proper/io/trunk/project.xml jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java Modified: jakarta/commons/proper/io/trunk/project.xml URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/io/trunk/project.xml?view=diff&r1=153622&r2=153623 ============================================================================== --- jakarta/commons/proper/io/trunk/project.xml (original) +++ jakarta/commons/proper/io/trunk/project.xml Sun Feb 13 04:09:53 2005 @@ -156,11 +156,14 @@ <contributors> <contributor> + <name>Jason Anderson</name> + </contributor> + <contributor> <name>Alban Peignier</name> <email>alban.peignier at free.fr</email> </contributor> <contributor> - <name>Jason Anderson</name> + <name>Masato Tezuka</name> </contributor> </contributors> Modified: jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java?view=diff&r1=153622&r2=153623 ============================================================================== --- jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java (original) +++ jakarta/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFilterUtils.java Sun Feb 13 04:09:53 2005 @@ -24,11 +24,12 @@ * every class you use. * * @since Commons IO 1.0 - * @version $Revision: 1.8 $ $Date: 2004/02/23 04:37:57 $ + * @version $Id$ * * @author Henri Yandell * @author Stephen Colebourne * @author Jeremias Maerki + * @author Masato Tezuka */ public class FileFilterUtils { @@ -156,20 +157,21 @@ //----------------------------------------------------------------------- /* Constructed on demand and then cached */ - private static IOFileFilter cvsFilter = null; + private static IOFileFilter cvsFilter; /** - * Resturns an IOFileFilter that ignores CVS directories. You may optionally + * Returns an IOFileFilter that ignores CVS directories. You may optionally * pass in an existing IOFileFilter in which case it is extended to exclude * CVS directories. - * @param filter IOFileFilter to modify, null if a new IOFileFilter + * @param filter IOFileFilter to wrap, null if a new IOFileFilter * should be created * @return the requested (combined) filter + * @since 1.1 (method existed but had bug in 1.0) */ public static IOFileFilter makeCVSAware(IOFileFilter filter) { if (cvsFilter == null) { - cvsFilter = andFileFilter(directoryFileFilter(), - notFileFilter(nameFileFilter("CVS"))); + cvsFilter = notFileFilter( + andFileFilter(directoryFileFilter(), nameFileFilter("CVS"))); } if (filter == null) { return cvsFilter; Modified: jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java?view=diff&r1=153622&r2=153623 ============================================================================== --- jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java (original) +++ jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java Sun Feb 13 04:09:53 2005 @@ -17,14 +17,16 @@ import java.io.File; -import junit.framework.TestCase; import junit.framework.TestSuite; import junit.textui.TestRunner; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.testtools.FileBasedTestCase; + /** - * Used to test an unknown FileFilter + * Used to test FileFilterUtils. */ -public class FileFilterTestCase extends TestCase { +public class FileFilterTestCase extends FileBasedTestCase { public FileFilterTestCase(String name) { super(name); @@ -39,9 +41,11 @@ } public void setUp() { + getTestDirectory().mkdirs(); } - public void tearDown() { + public void tearDown() throws Exception { + FileUtils.deleteDirectory(getTestDirectory()); } public void assertFiltering(IOFileFilter filter, File file, boolean expected) throws Exception { @@ -226,6 +230,32 @@ } } - + public void testMakeCVSAware() throws Exception { + IOFileFilter filter1 = FileFilterUtils.makeCVSAware(null); + IOFileFilter filter2 = FileFilterUtils.makeCVSAware(FileFilterUtils + .nameFileFilter("test-file1.txt")); + + File file = new File(getTestDirectory(), "CVS"); + file.mkdirs(); + assertFiltering(filter1, file, false); + assertFiltering(filter2, file, false); + FileUtils.deleteDirectory(file); + + file = new File(getTestDirectory(), "test-file1.txt"); + createFile(file, 0); + assertFiltering(filter1, file, true); + assertFiltering(filter2, file, true); + + file = new File(getTestDirectory(), "test-file2.log"); + createFile(file, 0); + assertFiltering(filter1, file, true); + assertFiltering(filter2, file, false); + + file = new File(getTestDirectory(), "CVS"); + createFile(file, 0); + assertFiltering(filter1, file, true); + assertFiltering(filter2, file, false); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]