Author: bayard
Date: Thu Oct 12 09:34:06 2006
New Revision: 463310

URL: http://svn.apache.org/viewvc?view=rev&rev=463310
Log:
Fixing #IO-82, in JDK 1.6 the gc call does not seem to be giving us the garbage 
collection, so Stephen came up with this to force that to happen. Speed seems 
good in JDK 1.4->1.6 and happily this isn't an issue with the underlying 
source, just the test. 

Modified:
    
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleanerTestCase.java

Modified: 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleanerTestCase.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleanerTestCase.java?view=diff&rev=463310&r1=463309&r2=463310
==============================================================================
--- 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleanerTestCase.java
 (original)
+++ 
jakarta/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleanerTestCase.java
 Thu Oct 12 09:34:06 2006
@@ -79,9 +79,8 @@
         r.close();
         testFile = null;
         r = null;
-        while (FileCleaner.getTrackCount() != 0) {
-            System.gc();
-        }
+
+        waitUntilTrackCount();
         
         assertEquals(0, FileCleaner.getTrackCount());
         assertEquals(false, new File(path).exists());
@@ -98,10 +97,9 @@
         assertEquals(1, FileCleaner.getTrackCount());
         
         obj = null;
-        while (FileCleaner.getTrackCount() != 0) {
-            System.gc();
-        }
-        
+
+        waitUntilTrackCount();
+
         assertEquals(0, FileCleaner.getTrackCount());
         assertEquals(true, testFile.exists());  // not deleted, as dir not 
empty
         assertEquals(true, testFile.getParentFile().exists());  // not 
deleted, as dir not empty
@@ -118,9 +116,8 @@
         assertEquals(1, FileCleaner.getTrackCount());
         
         obj = null;
-        while (FileCleaner.getTrackCount() != 0) {
-            System.gc();
-        }
+
+        waitUntilTrackCount();
         
         assertEquals(0, FileCleaner.getTrackCount());
         assertEquals(true, testFile.exists());  // not deleted, as dir not 
empty
@@ -138,9 +135,8 @@
         assertEquals(1, FileCleaner.getTrackCount());
         
         obj = null;
-        while (FileCleaner.getTrackCount() != 0) {
-            System.gc();
-        }
+
+        waitUntilTrackCount();
         
         assertEquals(0, FileCleaner.getTrackCount());
         assertEquals(false, testFile.exists());
@@ -174,4 +170,15 @@
         }
     }
 
+    private void waitUntilTrackCount() {
+        while (FileCleaner.getTrackCount() != 0) {
+            int total = 0;
+            while (FileCleaner.getTrackCount() != 0) {
+                byte[] b = new byte[1024 * 1024];
+                b[0] = (byte) System.currentTimeMillis();
+                total = total + b[0];
+                System.gc();
+            }
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to