[jboss-cvs] JBossAS SVN: r109273 - trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 11 12:45:42 EST 2010
Author: smarlow at redhat.com
Date: 2010-11-11 12:45:41 -0500 (Thu, 11 Nov 2010)
New Revision: 109273
Modified:
trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
Log:
JBAS-8613 only fill memory if there is a classloader leak, otherwise force full gc
Modified: trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java 2010-11-11 17:39:22 UTC (rev 109272)
+++ trunk/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java 2010-11-11 17:45:41 UTC (rev 109273)
@@ -127,7 +127,7 @@
return null;
}
- fillMemory(weakReferenceOnLoader);
+ fillMemory(weakReferenceOnLoader, leakAnalyzer);
if (weakReferenceOnLoader.get() == null)
{
@@ -180,25 +180,39 @@
Thread.sleep(1000);
if (weakReferenceOnLoader.get() != null)
- fillMemory(weakReferenceOnLoader);
+ fillMemory(weakReferenceOnLoader, leakAnalyzer);
if (weakReferenceOnLoader.get() != null)
- fillMemory(weakReferenceOnLoader);
+ fillMemory(weakReferenceOnLoader, leakAnalyzer);
}
return (ClassLoader) weakReferenceOnLoader.get();
}
-
- private void fillMemory(WeakReference<ClassLoader> ref)
+
+ /**
+ * Request a full gc
+ */
+ private void forceFullGCAndFinalize(LeakAnalyzer leakAnalyzer)
{
+ leakAnalyzer.forceGC();
+ // give more hints for gc + finalizers to run
+ for(int looper =0; looper < 10; looper++)
+ {
+ System.gc();
+ System.runFinalization();
+ }
+
+ }
+
+ private void fillMemory(WeakReference<ClassLoader> ref, LeakAnalyzer leakAnalyzer)
+ {
Runtime rt = Runtime.getRuntime();
int[] adds = { 0, 10, 20, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 };
for (int i = 0; i < adds.length; i++)
{
int toAdd = adds[i];
- System.gc();
- System.runFinalization();
-
+ forceFullGCAndFinalize(leakAnalyzer);
+
if (ref.get() == null)
break;
@@ -226,8 +240,7 @@
catch (Throwable t)
{
bytez = null;
- System.gc();
- System.runFinalization();
+ forceFullGCAndFinalize(leakAnalyzer);
log.warn("Caught throwable filling memory: " + t);
break;
}
@@ -267,8 +280,7 @@
if (ref.get() != null)
{
- System.gc();
- System.runFinalization();
+ forceFullGCAndFinalize(leakAnalyzer);
}
}
More information about the jboss-cvs-commits
mailing list