[jboss-cvs] JBossAS SVN: r65007 - in projects/aop/branches/leaks/aop: src/main/org/jboss/aop and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Sep 3 06:02:35 EDT 2007
Author: kabir.khan at jboss.com
Date: 2007-09-03 06:02:35 -0400 (Mon, 03 Sep 2007)
New Revision: 65007
Modified:
projects/aop/branches/leaks/aop/build-tests-jdk50.xml
projects/aop/branches/leaks/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
projects/aop/branches/leaks/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java
projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/AOPTestDelegate.java
projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/memoryleaks/MemoryLeakTestCase.java
Log:
Most memory tests get fixed by nulling the test fields
Modified: projects/aop/branches/leaks/aop/build-tests-jdk50.xml
===================================================================
--- projects/aop/branches/leaks/aop/build-tests-jdk50.xml 2007-09-03 09:39:02 UTC (rev 65006)
+++ projects/aop/branches/leaks/aop/build-tests-jdk50.xml 2007-09-03 10:02:35 UTC (rev 65007)
@@ -1469,7 +1469,6 @@
<target name="memory-tests" depends="compile-test-classes">
<taskdef name="annotationc" classname="org.jboss.aop.ant.AnnotationC" classpathref="jboss.aop.classpath"/>
-<!--
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="annotatedcflow"/>
<param name="case" value="AnnotatedCFlowTestCase"/>
@@ -1478,12 +1477,10 @@
<param name="test" value="annotatedparams"/>
<param name="case" value="AnnotatedParamsTester"/>
</antcall>
--->
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="args"/>
<param name="case" value="ArgumentsTestCase"/>
</antcall>
-<!--
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="basic"/>
<param name="case" value="AOPTester"/>
@@ -1496,9 +1493,6 @@
<param name="test" value="beforeafter"/>
<param name="case" value="BeforeAfterThrowingTestCase"/>
</antcall>
--->
- <echo>REMEMBER TO ENABLE THE REST OF THE TESTS</echo>
- <!--
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="beforeafterArgs"/>
<param name="case" value="ArgsTestCase"/>
@@ -1589,7 +1583,7 @@
</antcall>
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="instanceofintroduced"/>
- <param name="case" value="InstanceOfIntroducedTestCase"/>
+ <param name="case" value="InstanceofIntroducedTestCase"/>
</antcall>
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="introduction"/>
@@ -1614,7 +1608,7 @@
<antcall target="memory-test" inheritRefs="true">
<param name="test" value="scope"/>
<param name="case" value="ScopeTestCase"/>
- </antcall>-->
+ </antcall>
</target>
<target name="memory-test" depends="init">
Modified: projects/aop/branches/leaks/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java
===================================================================
--- projects/aop/branches/leaks/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2007-09-03 09:39:02 UTC (rev 65006)
+++ projects/aop/branches/leaks/aop/src/main/org/jboss/aop/GeneratedClassAdvisor.java 2007-09-03 10:02:35 UTC (rev 65007)
@@ -122,11 +122,12 @@
System.out.println("---> Domains: " + subscribedSubDomains.size());
synchronized (subscribedSubDomains)
{
- for (Iterator it = subscribedSubDomains.values().iterator() ; it.hasNext() ; )
+ for (Iterator it = subscribedSubDomains.keySet().iterator() ; it.hasNext() ; )
{
GeneratedAdvisorDomain manager = (GeneratedAdvisorDomain)it.next();
Map advisors = manager.getAdvisors();
System.out.println("---> Advisors: " + advisors);
+ it.remove();
}
}
}
Modified: projects/aop/branches/leaks/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java
===================================================================
--- projects/aop/branches/leaks/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java 2007-09-03 09:39:02 UTC (rev 65006)
+++ projects/aop/branches/leaks/aop/src/main/org/jboss/aop/classpool/AOPClassPoolRepository.java 2007-09-03 10:02:35 UTC (rev 65007)
@@ -228,6 +228,7 @@
{
//The static advisor field should be the only remaining hard reference to the advisor
f = advisedClass.getDeclaredField(Instrumentor.HELPER_FIELD_NAME);
+ //TODO Use securityaction
f.setAccessible(true);
}
catch(NoSuchFieldException e)
@@ -241,11 +242,14 @@
Advisor advisor = null;
try
{
- advisor = (Advisor)f.get(null);
- if (advisor != null)
- {
- advisor.cleanup();
- }
+ if (f != null)
+ {
+ advisor = (Advisor)f.get(null);
+ if (advisor != null)
+ {
+ advisor.cleanup();
+ }
+ }
}
catch(IllegalAccessException e)
{
@@ -254,7 +258,10 @@
try
{
- f.set(null, null);
+ if (f != null)
+ {
+ f.set(null, null);
+ }
}
catch(IllegalAccessException e)
{
Modified: projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/AOPTestDelegate.java
===================================================================
--- projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/AOPTestDelegate.java 2007-09-03 09:39:02 UTC (rev 65006)
+++ projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/AOPTestDelegate.java 2007-09-03 10:02:35 UTC (rev 65007)
@@ -48,20 +48,4 @@
{
return systemProps;
}
-
- /**
- * Undeployment any test specific aop descriptor deployed in setUp.
- */
- public void tearDown() throws Exception
- {
- //TODO Figure out cause of security exception when making this call
-// super.tearDown();
- String deployedByClassLoader = (String)systemProps.get(EclipseTestTransformer.CLASSLOADER_DEPLOYED_XML);
- if (deployedByClassLoader != null)
- {
- URL url = Thread.currentThread().getContextClassLoader().getResource(deployedByClassLoader);
- AspectXmlLoader.undeployXML(url);
- }
- }
-
}
Modified: projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/memoryleaks/MemoryLeakTestCase.java
===================================================================
--- projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/memoryleaks/MemoryLeakTestCase.java 2007-09-03 09:39:02 UTC (rev 65006)
+++ projects/aop/branches/leaks/aop/src/test/org/jboss/test/aop/memoryleaks/MemoryLeakTestCase.java 2007-09-03 10:02:35 UTC (rev 65007)
@@ -145,8 +145,8 @@
testClass=null;
testInstance = null;
methods.clear();
- //xmlLoader = null;
- AccessController.doPrivileged(new PrivilegedAction()
+
+ AccessController.doPrivileged(new PrivilegedAction<Object>()
{
public Object run()
{
@@ -154,6 +154,11 @@
return null;
}
});
+
+ //The test framework does not clear some static fields, make sure these are cleared
+ clearEverySingleFieldOnInstances("org.jboss.test.JBossTestSetup");
+ clearEverySingleFieldOnInstances("org.jboss.test.AbstractTestSetup");
+ clearEverySingleFieldOnInstances("org.jboss.test.AbstractTestCaseWithSetup");
}
assertEquals(1, countInstances("org.jboss.aop.AspectManager", true));
@@ -432,11 +437,13 @@
{
if (classes[i].getName().equals(className))
{
+ System.out.println("---> Found class " + className);
Field fields[] = getDeclaredFields(classes[i]);
objects = jvmti.getAllObjects(classes[i]);
for (int j=0;j<objects.length;j++)
{
resetObject(objects[j], fields);
+
}
if (objects.length==0)
{
@@ -454,14 +461,11 @@
{
try
{
- //System.out.print("Setting "+fields[fieldN].getName());
fields[fieldN].set(object,null);
- //System.out.println("...done");
}
catch (Exception e)
{
- // System.out.println("...error " + e.getMessage());
- //System.out.println("Exception " + e.getMessage() + " happened during setField");
+ System.out.println("Exception happened during setField " + e);
}
}
}
@@ -521,6 +525,7 @@
ArrayList urls = new ArrayList();
+ ArrayList<URL> urls = new ArrayList<URL>();
while (tokenString.hasMoreElements())
{
String value = tokenString.nextToken();
@@ -535,7 +540,7 @@
}
}
- URL[] urlArray= (URL[])urls.toArray(new URL[urls.size()]);
+ URL[] urlArray= urls.toArray(new URL[urls.size()]);
ClassLoader masterClassLoader = URLClassLoader.newInstance(urlArray,null);
@@ -557,8 +562,12 @@
String strurl = jbossAopPath;
assertNotNull("Property jboss.aop.path should be defined",strurl);
strurl = strurl.replace('\\','/');
+ if (!strurl.startsWith("/"))
+ {
+ strurl = "/" + strurl;
+ }
URL url = new URL("file://" + strurl);
-
+
aspectXmkLoaderUndeployXmlMethod.invoke(null, new Object[] {url});
System.out.println("\n====================================================================");
More information about the jboss-cvs-commits
mailing list