Skip to content

Commit 5affae5

Browse files
author
Stephen Colebourne
committed
Fix bug in makeCVSAware that rendered the method useless
bug 33023, from Masato Tezuka git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/io/trunk@153623 13f79535-47bb-0310-9956-ffa450edef68
1 parent 7a009ea commit 5affae5

3 files changed

Lines changed: 47 additions & 12 deletions

File tree

project.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,12 +155,15 @@
155155
</developers>
156156

157157
<contributors>
158+
<contributor>
159+
<name>Jason Anderson</name>
160+
</contributor>
158161
<contributor>
159162
<name>Alban Peignier</name>
160163
<email>alban.peignier at free.fr</email>
161164
</contributor>
162165
<contributor>
163-
<name>Jason Anderson</name>
166+
<name>Masato Tezuka</name>
164167
</contributor>
165168
</contributors>
166169

src/java/org/apache/commons/io/filefilter/FileFilterUtils.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@
2424
* every class you use.
2525
*
2626
* @since Commons IO 1.0
27-
* @version $Revision: 1.8 $ $Date: 2004/02/23 04:37:57 $
27+
* @version $Id$
2828
*
2929
* @author Henri Yandell
3030
* @author Stephen Colebourne
3131
* @author Jeremias Maerki
32+
* @author Masato Tezuka
3233
*/
3334
public class FileFilterUtils {
3435

@@ -156,20 +157,21 @@ public static IOFileFilter asFileFilter(FilenameFilter filter) {
156157
//-----------------------------------------------------------------------
157158

158159
/* Constructed on demand and then cached */
159-
private static IOFileFilter cvsFilter = null;
160+
private static IOFileFilter cvsFilter;
160161

161162
/**
162-
* Resturns an IOFileFilter that ignores CVS directories. You may optionally
163+
* Returns an IOFileFilter that ignores CVS directories. You may optionally
163164
* pass in an existing IOFileFilter in which case it is extended to exclude
164165
* CVS directories.
165-
* @param filter IOFileFilter to modify, null if a new IOFileFilter
166+
* @param filter IOFileFilter to wrap, null if a new IOFileFilter
166167
* should be created
167168
* @return the requested (combined) filter
169+
* @since 1.1 (method existed but had bug in 1.0)
168170
*/
169171
public static IOFileFilter makeCVSAware(IOFileFilter filter) {
170172
if (cvsFilter == null) {
171-
cvsFilter = andFileFilter(directoryFileFilter(),
172-
notFileFilter(nameFileFilter("CVS")));
173+
cvsFilter = notFileFilter(
174+
andFileFilter(directoryFileFilter(), nameFileFilter("CVS")));
173175
}
174176
if (filter == null) {
175177
return cvsFilter;

src/test/org/apache/commons/io/filefilter/FileFilterTestCase.java

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,16 @@
1717

1818
import java.io.File;
1919

20-
import junit.framework.TestCase;
2120
import junit.framework.TestSuite;
2221
import junit.textui.TestRunner;
2322

23+
import org.apache.commons.io.FileUtils;
24+
import org.apache.commons.io.testtools.FileBasedTestCase;
25+
2426
/**
25-
* Used to test an unknown FileFilter
27+
* Used to test FileFilterUtils.
2628
*/
27-
public class FileFilterTestCase extends TestCase {
29+
public class FileFilterTestCase extends FileBasedTestCase {
2830

2931
public FileFilterTestCase(String name) {
3032
super(name);
@@ -39,9 +41,11 @@ public static TestSuite suite() {
3941
}
4042

4143
public void setUp() {
44+
getTestDirectory().mkdirs();
4245
}
4346

44-
public void tearDown() {
47+
public void tearDown() throws Exception {
48+
FileUtils.deleteDirectory(getTestDirectory());
4549
}
4650

4751
public void assertFiltering(IOFileFilter filter, File file, boolean expected) throws Exception {
@@ -226,6 +230,32 @@ public void testWildcard() throws Exception {
226230
}
227231
}
228232

229-
233+
public void testMakeCVSAware() throws Exception {
234+
IOFileFilter filter1 = FileFilterUtils.makeCVSAware(null);
235+
IOFileFilter filter2 = FileFilterUtils.makeCVSAware(FileFilterUtils
236+
.nameFileFilter("test-file1.txt"));
237+
238+
File file = new File(getTestDirectory(), "CVS");
239+
file.mkdirs();
240+
assertFiltering(filter1, file, false);
241+
assertFiltering(filter2, file, false);
242+
FileUtils.deleteDirectory(file);
243+
244+
file = new File(getTestDirectory(), "test-file1.txt");
245+
createFile(file, 0);
246+
assertFiltering(filter1, file, true);
247+
assertFiltering(filter2, file, true);
248+
249+
file = new File(getTestDirectory(), "test-file2.log");
250+
createFile(file, 0);
251+
assertFiltering(filter1, file, true);
252+
assertFiltering(filter2, file, false);
253+
254+
file = new File(getTestDirectory(), "CVS");
255+
createFile(file, 0);
256+
assertFiltering(filter1, file, true);
257+
assertFiltering(filter2, file, false);
258+
}
259+
230260
}
231261

0 commit comments

Comments
 (0)