[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