[jboss-cvs] JBossAS SVN: r102119 - in projects/kernel/trunk/dependency/src: test/java/org/jboss/test/dependency/controller/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 9 05:20:15 EST 2010
Author: alesj
Date: 2010-03-09 05:20:14 -0500 (Tue, 09 Mar 2010)
New Revision: 102119
Modified:
projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextRegistry.java
projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ContextRegistryTestCase.java
Log:
[JBKERNEL-112]; fix class leak - tests.
Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextRegistry.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextRegistry.java 2010-03-09 09:58:55 UTC (rev 102118)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/tracker/AbstractContextRegistry.java 2010-03-09 10:20:14 UTC (rev 102119)
@@ -21,13 +21,7 @@
*/
package org.jboss.dependency.plugins.tracker;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.*;
import org.jboss.dependency.spi.Controller;
import org.jboss.dependency.spi.ControllerContext;
@@ -45,7 +39,7 @@
public class AbstractContextRegistry extends AbstractLockHolder implements ContextQueries, ContextRegistry
{
/** The contexts by class Map<Class, Set<ControllerContext>> */
- private Map<Class<?>, ClassContext> contextsByClass = new ConcurrentHashMap<Class<?>, ClassContext>();
+ private Map<Class<?>, ClassContext> contextsByClass = new HashMap<Class<?>, ClassContext>();
/** The classes by contexts */
private Map<ControllerContext, Set<Class<?>>> classesByContext = new HashMap<ControllerContext, Set<Class<?>>>();
Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ContextRegistryTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ContextRegistryTestCase.java 2010-03-09 09:58:55 UTC (rev 102118)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/ContextRegistryTestCase.java 2010-03-09 10:20:14 UTC (rev 102119)
@@ -21,6 +21,9 @@
*/
package org.jboss.test.dependency.controller.test;
+import java.lang.reflect.Field;
+import java.util.Map;
+
import junit.framework.Test;
import org.jboss.dependency.plugins.tracker.AbstractContextRegistry;
@@ -97,4 +100,46 @@
}
context.setState(ControllerState.ERROR);
}
+
+ public void testSmoke() throws Exception
+ {
+ SecurityManager sm = suspendSecurity();
+ Map contextsByClass;
+ Map classesByContext;
+ try
+ {
+ // a bit of impl details
+ contextsByClass = getFieldMap("contextsByClass");
+ classesByContext = getFieldMap("classesByContext");
+ }
+ finally
+ {
+ resumeSecurity(sm);
+ }
+ assertEmpty(contextsByClass.keySet());
+ assertEmpty(classesByContext.keySet());
+
+ TestDelegate delegate = new TestDelegate("test");
+ delegate.target = "foobar";
+ TestControllerContext context = installContext(delegate);
+ try
+ {
+ assertFalse(contextsByClass.isEmpty());
+ assertFalse(classesByContext.isEmpty());
+ }
+ finally
+ {
+ uninstallContext(context);
+
+ assertEmpty(contextsByClass.keySet());
+ assertEmpty(classesByContext.keySet());
+ }
+ }
+
+ protected Map getFieldMap(String fieldName) throws Exception
+ {
+ Field field = AbstractContextRegistry.class.getDeclaredField(fieldName);
+ field.setAccessible(true);
+ return (Map) field.get(registry);
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list