You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ni...@apache.org on 2010/09/30 03:27:59 UTC
svn commit: r1002920 -
/commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
Author: niallp
Date: Thu Sep 30 01:27:59 2010
New Revision: 1002920
URL: http://svn.apache.org/viewvc?rev=1002920&view=rev
Log:
IO-161 Try to fix the OutOfMemoryError in FileCleaningTrackerTestCase were seeing in Continuum and Gump
Modified:
commons/proper/io/trunk/src/test/org/apache/commons/io/FileCleaningTrackerTestCase.java
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=1002920&r1=1002919&r2=1002920&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 Thu Sep 30 01:27:59 2010
@@ -19,6 +19,7 @@ package org.apache.commons.io;
import java.io.File;
import java.io.RandomAccessFile;
import java.lang.ref.ReferenceQueue;
+import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.List;
@@ -280,11 +281,12 @@ public class FileCleaningTrackerTestCase
//-----------------------------------------------------------------------
private void waitUntilTrackCount() throws Exception {
int count = 0;
+ SoftReference<?> ref = new SoftReference<Object>(new Object());
while(theInstance.getTrackCount() != 0 && count++ < 5) {
List<String> list = new ArrayList<String>();
try {
long i = 0;
- while (true && theInstance.getTrackCount() != 0) {
+ while (ref.get() != null) {
list.add("A Big String A Big String A Big String A Big String A Big String A Big String A Big String A Big String A Big String A Big String " + (i++));
}
} catch (Throwable ignored) {
@@ -293,6 +295,7 @@ public class FileCleaningTrackerTestCase
list = null;
System.gc();
Thread.sleep(1000);
+ ref = new SoftReference<Object>(new Object());
}
if (theInstance.getTrackCount() != 0) {
throw new IllegalStateException("Your JVM is not releasing SoftReference, try running the testcase with less memory (-Xmx)");