commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nia...@apache.org
Subject svn commit: r658782 - in /commons/proper/io/trunk/src: java/org/apache/commons/io/ java/org/apache/commons/io/filefilter/ java/org/apache/commons/io/input/ java/org/apache/commons/io/output/ test/org/apache/commons/io/
Date Wed, 21 May 2008 17:42:28 GMT
Author: niallp
Date: Wed May 21 10:42:27 2008
New Revision: 658782

URL: http://svn.apache.org/viewvc?rev=658782&view=rev
Log:
Fix svn properties only (eol-style, keywords etc)

Modified:
    commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java   (contents,
props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/FileDeleteStrategy.java   (props
changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/IOCase.java   (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/LineIterator.java   (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/AgeFileFilter.java 
 (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
  (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/SizeFileFilter.java
  (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
  (contents, props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/input/package.html   (props changed)
    commons/proper/io/trunk/src/java/org/apache/commons/io/output/package.html   (props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
  (contents, props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/FileDeleteStrategyTestCase.java
  (props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/FileSystemUtilsTestCase.java  
(props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/FileUtilsCleanDirectoryTestCase.java
  (props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/FileUtilsWaitForTestCase.java 
 (props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/IOCaseTestCase.java   (props changed)
    commons/proper/io/trunk/src/test/org/apache/commons/io/LineIteratorTestCase.java   (props
changed)

Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java?rev=658782&r1=658781&r2=658782&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java (original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java Wed May 21
10:42:27 2008
@@ -246,7 +246,7 @@
  * </pre>
  *
  * @since Commons IO 1.3
- * @version $Revision: 424748 $
+ * @version $Revision$
  */
 public abstract class DirectoryWalker {
 

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/DirectoryWalker.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-author date id revision
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/FileDeleteStrategy.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-author date id revision
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/IOCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/LineIterator.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/AgeFileFilter.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/FileFileFilter.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-author date id revision
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/SizeFileFilter.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Modified: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java?rev=658782&r1=658781&r2=658782&view=diff
==============================================================================
--- commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
(original)
+++ commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
Wed May 21 10:42:27 2008
@@ -46,7 +46,7 @@
  * </pre>
  *
  * @author Jason Anderson
- * @version $Revision: 155419 $ $Date$
+ * @version $Revision$ $Date$
  * @since Commons IO 1.3
  */
 public class WildcardFileFilter extends AbstractFileFilter implements Serializable {

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/filefilter/WildcardFileFilter.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/input/package.html
            ('svn:executable' removed)

Propchange: commons/proper/io/trunk/src/java/org/apache/commons/io/output/package.html
            ('svn:executable' removed)

Modified: commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java?rev=658782&r1=658781&r2=658782&view=diff
==============================================================================
--- commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
(original)
+++ commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
Wed May 21 10:42:27 2008
@@ -1,302 +1,302 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.io;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.lang.ref.ReferenceQueue;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-import org.apache.commons.io.testtools.FileBasedTestCase;
-
-/**
- * This is used to test {@link FileCleaningTracker} for correctness.
- *
- * @author Noel Bergman
- * @author Martin Cooper
- *
- * @version $Id: FileCleanerTestCase.java 482437 2006-12-05 01:13:05Z scolebourne $
-
- * @see FileCleaner
- */
-public class FileCleaningTrackerTestCase extends FileBasedTestCase {
-    protected FileCleaningTracker newInstance() {
-        return new FileCleaningTracker();
-    }
-
-    private File testFile;
-    private FileCleaningTracker theInstance;
-
-    public static void main(String[] args) {
-        TestRunner.run(suite());
-    }
-
-    public static Test suite() {
-        return new TestSuite(FileCleaningTrackerTestCase.class);
-    }
-
-    public FileCleaningTrackerTestCase(String name) throws IOException {
-        super(name);
-
-        testFile = new File(getTestDirectory(), "file-test.txt");
-    }
-
-    /** @see junit.framework.TestCase#setUp() */
-    protected void setUp() throws Exception {
-        theInstance = newInstance();
-        getTestDirectory().mkdirs();
-    }
-
-    /** @see junit.framework.TestCase#tearDown() */
-    protected void tearDown() throws Exception {
-        FileUtils.deleteDirectory(getTestDirectory());
-        
-        // reset file cleaner class, so as not to break other tests
-
-        /**
-         * The following block of code can possibly be removed when the
-         * deprecated {@link FileCleaner} is gone. The question is, whether
-         * we want to support reuse of {@link FileCleaningTracker} instances,
-         * which we should, IMO, not.
-         */
-        {
-            theInstance.q = new ReferenceQueue();
-            theInstance.trackers.clear();
-            theInstance.exitWhenFinished = false;
-            theInstance.reaper = null;
-        }
-        
-        theInstance = null;
-    }
-
-    //-----------------------------------------------------------------------
-    public void testFileCleanerFile() throws Exception {
-        String path = testFile.getPath();
-        
-        assertEquals(false, testFile.exists());
-        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
-        assertEquals(true, testFile.exists());
-        
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(path, r);
-        assertEquals(1, theInstance.getTrackCount());
-        
-        r.close();
-        testFile = null;
-        r = null;
-
-        waitUntilTrackCount();
-        
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(false, new File(path).exists());
-    }
-
-    public void testFileCleanerDirectory() throws Exception {
-        createFile(testFile, 100);
-        assertEquals(true, testFile.exists());
-        assertEquals(true, getTestDirectory().exists());
-        
-        Object obj = new Object();
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(getTestDirectory(), obj);
-        assertEquals(1, theInstance.getTrackCount());
-        
-        obj = null;
-
-        waitUntilTrackCount();
-
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(true, testFile.exists());  // not deleted, as dir not empty
-        assertEquals(true, testFile.getParentFile().exists());  // not deleted, as dir not
empty
-    }
-
-    public void testFileCleanerDirectory_NullStrategy() throws Exception {
-        createFile(testFile, 100);
-        assertEquals(true, testFile.exists());
-        assertEquals(true, getTestDirectory().exists());
-        
-        Object obj = new Object();
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(getTestDirectory(), obj, (FileDeleteStrategy) null);
-        assertEquals(1, theInstance.getTrackCount());
-        
-        obj = null;
-
-        waitUntilTrackCount();
-        
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(true, testFile.exists());  // not deleted, as dir not empty
-        assertEquals(true, testFile.getParentFile().exists());  // not deleted, as dir not
empty
-    }
-
-    public void testFileCleanerDirectory_ForceStrategy() throws Exception {
-        createFile(testFile, 100);
-        assertEquals(true, testFile.exists());
-        assertEquals(true, getTestDirectory().exists());
-        
-        Object obj = new Object();
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(getTestDirectory(), obj, FileDeleteStrategy.FORCE);
-        assertEquals(1, theInstance.getTrackCount());
-        
-        obj = null;
-
-        waitUntilTrackCount();
-        
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(false, testFile.exists());
-        assertEquals(false, testFile.getParentFile().exists());
-    }
-
-    public void testFileCleanerNull() throws Exception {
-        try {
-            theInstance.track((File) null, new Object());
-            fail();
-        } catch (NullPointerException ex) {
-            // expected
-        }
-        try {
-            theInstance.track((File) null, new Object(), FileDeleteStrategy.NORMAL);
-            fail();
-        } catch (NullPointerException ex) {
-            // expected
-        }
-        try {
-            theInstance.track((String) null, new Object());
-            fail();
-        } catch (NullPointerException ex) {
-            // expected
-        }
-        try {
-            theInstance.track((String) null, new Object(), FileDeleteStrategy.NORMAL);
-            fail();
-        } catch (NullPointerException ex) {
-            // expected
-        }
-    }
-
-    public void testFileCleanerExitWhenFinishedFirst() throws Exception {
-        assertEquals(false, theInstance.exitWhenFinished);
-        theInstance.exitWhenFinished();
-        assertEquals(true, theInstance.exitWhenFinished);
-        assertEquals(null, theInstance.reaper);
-        
-        waitUntilTrackCount();
-        
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(true, theInstance.exitWhenFinished);
-        assertEquals(null, theInstance.reaper);
-    }
-
-    public void testFileCleanerExitWhenFinished_NoTrackAfter() throws Exception {
-        assertEquals(false, theInstance.exitWhenFinished);
-        theInstance.exitWhenFinished();
-        assertEquals(true, theInstance.exitWhenFinished);
-        assertEquals(null, theInstance.reaper);
-        
-        String path = testFile.getPath();
-        Object marker = new Object();
-        try {
-            theInstance.track(path, marker);
-            fail();
-        } catch (IllegalStateException ex) {
-            // expected
-        }
-        assertEquals(true, theInstance.exitWhenFinished);
-        assertEquals(null, theInstance.reaper);
-    }
-
-    public void testFileCleanerExitWhenFinished1() throws Exception {
-        String path = testFile.getPath();
-        
-        assertEquals("1-testFile exists", false, testFile.exists());
-        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
-        assertEquals("2-testFile exists", true, testFile.exists());
-        
-        assertEquals("3-Track Count", 0, theInstance.getTrackCount());
-        theInstance.track(path, r);
-        assertEquals("4-Track Count", 1, theInstance.getTrackCount());
-        assertEquals("5-exitWhenFinished", false, theInstance.exitWhenFinished);
-        assertEquals("6-reaper.isAlive", true, theInstance.reaper.isAlive());
-        
-        assertEquals("7-exitWhenFinished", false, theInstance.exitWhenFinished);
-        theInstance.exitWhenFinished();
-        assertEquals("8-exitWhenFinished", true, theInstance.exitWhenFinished);
-        assertEquals("9-reaper.isAlive", true, theInstance.reaper.isAlive());
-        
-        r.close();
-        testFile = null;
-        r = null;
-
-        waitUntilTrackCount();
-        
-        assertEquals("10-Track Count", 0, theInstance.getTrackCount());
-        assertEquals("11-testFile exists", false, new File(path).exists());
-        assertEquals("12-exitWhenFinished", true, theInstance.exitWhenFinished);
-        assertEquals("13-reaper.isAlive", false, theInstance.reaper.isAlive());
-    }
-
-    public void testFileCleanerExitWhenFinished2() throws Exception {
-        String path = testFile.getPath();
-        
-        assertEquals(false, testFile.exists());
-        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
-        assertEquals(true, testFile.exists());
-        
-        assertEquals(0, theInstance.getTrackCount());
-        theInstance.track(path, r);
-        assertEquals(1, theInstance.getTrackCount());
-        assertEquals(false, theInstance.exitWhenFinished);
-        assertEquals(true, theInstance.reaper.isAlive());
-        
-        r.close();
-        testFile = null;
-        r = null;
-
-        waitUntilTrackCount();
-        
-        assertEquals(0, theInstance.getTrackCount());
-        assertEquals(false, new File(path).exists());
-        assertEquals(false, theInstance.exitWhenFinished);
-        assertEquals(true, theInstance.reaper.isAlive());
-        
-        assertEquals(false, theInstance.exitWhenFinished);
-        theInstance.exitWhenFinished();
-        for (int i = 0; i < 20 && theInstance.reaper.isAlive(); i++) {
-            Thread.sleep(500L);  // allow reaper thread to die
-        }
-        assertEquals(true, theInstance.exitWhenFinished);
-        assertEquals(false, theInstance.reaper.isAlive());
-    }
-
-    //-----------------------------------------------------------------------
-    private void waitUntilTrackCount() {
-        while (theInstance.getTrackCount() != 0) {
-            int total = 0;
-            while (theInstance.getTrackCount() != 0) {
-                byte[] b = new byte[1024 * 1024];
-                b[0] = (byte) System.currentTimeMillis();
-                total = total + b[0];
-                System.gc();
-            }
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.io;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.lang.ref.ReferenceQueue;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.apache.commons.io.testtools.FileBasedTestCase;
+
+/**
+ * This is used to test {@link FileCleaningTracker} for correctness.
+ *
+ * @author Noel Bergman
+ * @author Martin Cooper
+ *
+ * @version $Id$
+
+ * @see FileCleaner
+ */
+public class FileCleaningTrackerTestCase extends FileBasedTestCase {
+    protected FileCleaningTracker newInstance() {
+        return new FileCleaningTracker();
+    }
+
+    private File testFile;
+    private FileCleaningTracker theInstance;
+
+    public static void main(String[] args) {
+        TestRunner.run(suite());
+    }
+
+    public static Test suite() {
+        return new TestSuite(FileCleaningTrackerTestCase.class);
+    }
+
+    public FileCleaningTrackerTestCase(String name) throws IOException {
+        super(name);
+
+        testFile = new File(getTestDirectory(), "file-test.txt");
+    }
+
+    /** @see junit.framework.TestCase#setUp() */
+    protected void setUp() throws Exception {
+        theInstance = newInstance();
+        getTestDirectory().mkdirs();
+    }
+
+    /** @see junit.framework.TestCase#tearDown() */
+    protected void tearDown() throws Exception {
+        FileUtils.deleteDirectory(getTestDirectory());
+        
+        // reset file cleaner class, so as not to break other tests
+
+        /**
+         * The following block of code can possibly be removed when the
+         * deprecated {@link FileCleaner} is gone. The question is, whether
+         * we want to support reuse of {@link FileCleaningTracker} instances,
+         * which we should, IMO, not.
+         */
+        {
+            theInstance.q = new ReferenceQueue();
+            theInstance.trackers.clear();
+            theInstance.exitWhenFinished = false;
+            theInstance.reaper = null;
+        }
+        
+        theInstance = null;
+    }
+
+    //-----------------------------------------------------------------------
+    public void testFileCleanerFile() throws Exception {
+        String path = testFile.getPath();
+        
+        assertEquals(false, testFile.exists());
+        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
+        assertEquals(true, testFile.exists());
+        
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(path, r);
+        assertEquals(1, theInstance.getTrackCount());
+        
+        r.close();
+        testFile = null;
+        r = null;
+
+        waitUntilTrackCount();
+        
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(false, new File(path).exists());
+    }
+
+    public void testFileCleanerDirectory() throws Exception {
+        createFile(testFile, 100);
+        assertEquals(true, testFile.exists());
+        assertEquals(true, getTestDirectory().exists());
+        
+        Object obj = new Object();
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(getTestDirectory(), obj);
+        assertEquals(1, theInstance.getTrackCount());
+        
+        obj = null;
+
+        waitUntilTrackCount();
+
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(true, testFile.exists());  // not deleted, as dir not empty
+        assertEquals(true, testFile.getParentFile().exists());  // not deleted, as dir not
empty
+    }
+
+    public void testFileCleanerDirectory_NullStrategy() throws Exception {
+        createFile(testFile, 100);
+        assertEquals(true, testFile.exists());
+        assertEquals(true, getTestDirectory().exists());
+        
+        Object obj = new Object();
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(getTestDirectory(), obj, (FileDeleteStrategy) null);
+        assertEquals(1, theInstance.getTrackCount());
+        
+        obj = null;
+
+        waitUntilTrackCount();
+        
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(true, testFile.exists());  // not deleted, as dir not empty
+        assertEquals(true, testFile.getParentFile().exists());  // not deleted, as dir not
empty
+    }
+
+    public void testFileCleanerDirectory_ForceStrategy() throws Exception {
+        createFile(testFile, 100);
+        assertEquals(true, testFile.exists());
+        assertEquals(true, getTestDirectory().exists());
+        
+        Object obj = new Object();
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(getTestDirectory(), obj, FileDeleteStrategy.FORCE);
+        assertEquals(1, theInstance.getTrackCount());
+        
+        obj = null;
+
+        waitUntilTrackCount();
+        
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(false, testFile.exists());
+        assertEquals(false, testFile.getParentFile().exists());
+    }
+
+    public void testFileCleanerNull() throws Exception {
+        try {
+            theInstance.track((File) null, new Object());
+            fail();
+        } catch (NullPointerException ex) {
+            // expected
+        }
+        try {
+            theInstance.track((File) null, new Object(), FileDeleteStrategy.NORMAL);
+            fail();
+        } catch (NullPointerException ex) {
+            // expected
+        }
+        try {
+            theInstance.track((String) null, new Object());
+            fail();
+        } catch (NullPointerException ex) {
+            // expected
+        }
+        try {
+            theInstance.track((String) null, new Object(), FileDeleteStrategy.NORMAL);
+            fail();
+        } catch (NullPointerException ex) {
+            // expected
+        }
+    }
+
+    public void testFileCleanerExitWhenFinishedFirst() throws Exception {
+        assertEquals(false, theInstance.exitWhenFinished);
+        theInstance.exitWhenFinished();
+        assertEquals(true, theInstance.exitWhenFinished);
+        assertEquals(null, theInstance.reaper);
+        
+        waitUntilTrackCount();
+        
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(true, theInstance.exitWhenFinished);
+        assertEquals(null, theInstance.reaper);
+    }
+
+    public void testFileCleanerExitWhenFinished_NoTrackAfter() throws Exception {
+        assertEquals(false, theInstance.exitWhenFinished);
+        theInstance.exitWhenFinished();
+        assertEquals(true, theInstance.exitWhenFinished);
+        assertEquals(null, theInstance.reaper);
+        
+        String path = testFile.getPath();
+        Object marker = new Object();
+        try {
+            theInstance.track(path, marker);
+            fail();
+        } catch (IllegalStateException ex) {
+            // expected
+        }
+        assertEquals(true, theInstance.exitWhenFinished);
+        assertEquals(null, theInstance.reaper);
+    }
+
+    public void testFileCleanerExitWhenFinished1() throws Exception {
+        String path = testFile.getPath();
+        
+        assertEquals("1-testFile exists", false, testFile.exists());
+        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
+        assertEquals("2-testFile exists", true, testFile.exists());
+        
+        assertEquals("3-Track Count", 0, theInstance.getTrackCount());
+        theInstance.track(path, r);
+        assertEquals("4-Track Count", 1, theInstance.getTrackCount());
+        assertEquals("5-exitWhenFinished", false, theInstance.exitWhenFinished);
+        assertEquals("6-reaper.isAlive", true, theInstance.reaper.isAlive());
+        
+        assertEquals("7-exitWhenFinished", false, theInstance.exitWhenFinished);
+        theInstance.exitWhenFinished();
+        assertEquals("8-exitWhenFinished", true, theInstance.exitWhenFinished);
+        assertEquals("9-reaper.isAlive", true, theInstance.reaper.isAlive());
+        
+        r.close();
+        testFile = null;
+        r = null;
+
+        waitUntilTrackCount();
+        
+        assertEquals("10-Track Count", 0, theInstance.getTrackCount());
+        assertEquals("11-testFile exists", false, new File(path).exists());
+        assertEquals("12-exitWhenFinished", true, theInstance.exitWhenFinished);
+        assertEquals("13-reaper.isAlive", false, theInstance.reaper.isAlive());
+    }
+
+    public void testFileCleanerExitWhenFinished2() throws Exception {
+        String path = testFile.getPath();
+        
+        assertEquals(false, testFile.exists());
+        RandomAccessFile r = new RandomAccessFile(testFile, "rw");
+        assertEquals(true, testFile.exists());
+        
+        assertEquals(0, theInstance.getTrackCount());
+        theInstance.track(path, r);
+        assertEquals(1, theInstance.getTrackCount());
+        assertEquals(false, theInstance.exitWhenFinished);
+        assertEquals(true, theInstance.reaper.isAlive());
+        
+        r.close();
+        testFile = null;
+        r = null;
+
+        waitUntilTrackCount();
+        
+        assertEquals(0, theInstance.getTrackCount());
+        assertEquals(false, new File(path).exists());
+        assertEquals(false, theInstance.exitWhenFinished);
+        assertEquals(true, theInstance.reaper.isAlive());
+        
+        assertEquals(false, theInstance.exitWhenFinished);
+        theInstance.exitWhenFinished();
+        for (int i = 0; i < 20 && theInstance.reaper.isAlive(); i++) {
+            Thread.sleep(500L);  // allow reaper thread to die
+        }
+        assertEquals(true, theInstance.exitWhenFinished);
+        assertEquals(false, theInstance.reaper.isAlive());
+    }
+
+    //-----------------------------------------------------------------------
+    private void waitUntilTrackCount() {
+        while (theInstance.getTrackCount() != 0) {
+            int total = 0;
+            while (theInstance.getTrackCount() != 0) {
+                byte[] b = new byte[1024 * 1024];
+                b[0] = (byte) System.currentTimeMillis();
+                total = total + b[0];
+                System.gc();
+            }
+        }
+    }
+}

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileDeleteStrategyTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-author date id revision
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileSystemUtilsTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileUtilsCleanDirectoryTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/FileUtilsWaitForTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/IOCaseTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL

Propchange: commons/proper/io/trunk/src/test/org/apache/commons/io/LineIteratorTestCase.java
------------------------------------------------------------------------------
--- svn:keywords (original)
+++ svn:keywords Wed May 21 10:42:27 2008
@@ -1 +1 @@
-"author date id revision"
+Date Author Id Revision HeadURL



Mime
View raw message