[jboss-cvs] JBossAS SVN: r104825 - projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat May 15 10:22:20 EDT 2010


Author: alesj
Date: 2010-05-15 10:22:19 -0400 (Sat, 15 May 2010)
New Revision: 104825

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java
Log:
[JBKERNEL-121]; do proper map cleanup.

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java	2010-05-15 12:14:25 UTC (rev 104824)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractDependencyInfo.java	2010-05-15 14:22:19 UTC (rev 104825)
@@ -88,28 +88,46 @@
    {
    }
 
-   public void resolved(DependencyItem item)
+   private void removeUnresolved(DependencyItem dependency, ControllerState whenRequired)
    {
-      if (tracking)
+      Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved;
+      if (unresolved != null)
       {
-         ControllerState whenRequired = item.getWhenRequired();
-         Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved;
-         if (unresolved != null)
+         Set<DependencyItem> items = unresolved.get(whenRequired);
+         if (items != null)
          {
-            Set<DependencyItem> items = unresolved.get(whenRequired);
-            if (items != null)
-               items.remove(item);
+            items.remove(dependency);
+            if (items.isEmpty())
+               unresolved.remove(whenRequired);
          }
-         Map<ControllerState, Set<DependencyItem>> semiResolved = this.semiResolved;
-         if (semiResolved != null)
+      }
+   }
+
+   private void removeSemiResolved(DependencyItem item, ControllerState whenRequired)
+   {
+      Map<ControllerState, Set<DependencyItem>> semiResolved = this.semiResolved;
+      if (semiResolved != null)
+      {
+         Set<DependencyItem> items = semiResolved.get(whenRequired);
+         if (items != null)
          {
-            Set<DependencyItem> items = semiResolved.get(whenRequired);
-            if (items != null)
-               items.remove(item);
+            items.remove(item);
+            if (items.isEmpty())
+               semiResolved.remove(whenRequired);
          }
       }
    }
 
+   public void resolved(DependencyItem item)
+   {
+      if (tracking)
+      {
+         ControllerState whenRequired = item.getWhenRequired();
+         removeUnresolved(item, whenRequired);
+         removeSemiResolved(item, whenRequired);
+      }
+   }
+
    public void unresolved(DependencyItem item)
    {
       if (tracking)
@@ -128,13 +146,7 @@
             unresolved.put(whenRequired, items);
          }
          items.add(item);
-         Map<ControllerState, Set<DependencyItem>> semiResolved = this.semiResolved;
-         if (semiResolved != null)
-         {
-            items = semiResolved.get(whenRequired);
-            if (items != null)
-               items.remove(item);
-         }
+         removeSemiResolved(item, whenRequired);
       }
    }
 
@@ -156,16 +168,10 @@
             semiResolved.put(whenRequired, items);
          }
          items.add(item);
-         Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved;
-         if (unresolved != null)
-         {
-            items = unresolved.get(whenRequired);
-            if (items != null)
-               items.remove(item);
-         }
+         removeUnresolved(item, whenRequired);
       }
    }
-   
+
    public ResolvedState semiResolve(TrackingDependencyItem item)
    {
       if (item == null)
@@ -365,17 +371,11 @@
          if (tracking)
          {
             ControllerState whenRequired = dependency.getWhenRequired();
-            Map<ControllerState, Set<DependencyItem>> unresolved = this.unresolved;
-            if (unresolved != null)
-            {
-               Set<DependencyItem> items = unresolved.get(whenRequired);
-               if (items != null)
-                  items.remove(dependency);
-            }
+            removeUnresolved(dependency, whenRequired);
          }
       }
    }
-   
+
    public Set<DependencyItem> getDependsOnMe(Class<?> type)
    {
       Set<DependencyItem> dependsOnMe = this.dependsOnMe;




More information about the jboss-cvs-commits mailing list