[jboss-cvs] JBossAS SVN: r96757 - 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
Mon Nov 23 15:29:30 EST 2009


Author: alesj
Date: 2009-11-23 15:29:30 -0500 (Mon, 23 Nov 2009)
New Revision: 96757

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
Log:
Fix the loop.

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-23 20:09:09 UTC (rev 96756)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractControllerContext.java	2009-11-23 20:29:30 UTC (rev 96757)
@@ -93,6 +93,9 @@
    /** The context tracker */
    private ContextTracker tracker;
 
+   /** the in use flag */
+   private boolean inUse;
+
    /**
     * Create a new AbstractControllerContext.
     * 
@@ -364,25 +367,33 @@
 
    public ContextTracker getContextTracker()
    {
-      if (tracker == null)
+      if (tracker == null && inUse == false)
       {
-         MetaData metaData = scopeInfo.getMetaData();
-         if (metaData != null)
+         inUse = true; // else we can go into loop
+         try
          {
-            ContextTracker ct = metaData.getMetaData(ContextTracker.class);
-            if (ct == null)
+            MetaData metaData = scopeInfo.getMetaData();
+            if (metaData != null)
             {
-               List<ScopeLevel> levels = CommonLevelsUtil.getSubLevels(CommonLevels.SERVER);
-               int instanceIndex = levels.indexOf(CommonLevels.INSTANCE);
-               for (int i = instanceIndex; i >= 0 && ct == null; i--)
+               ContextTracker ct = metaData.getMetaData(ContextTracker.class);
+               if (ct == null)
                {
-                  MetaData md = metaData.getScopeMetaData(levels.get(i));
-                  if (md != null)
-                     ct = md.getMetaData(ContextTracker.class);
+                  List<ScopeLevel> levels = CommonLevelsUtil.getSubLevels(CommonLevels.SERVER);
+                  int instanceIndex = levels.indexOf(CommonLevels.INSTANCE);
+                  for (int i = instanceIndex; i >= 0 && ct == null; i--)
+                  {
+                     MetaData md = metaData.getScopeMetaData(levels.get(i));
+                     if (md != null)
+                        ct = md.getMetaData(ContextTracker.class);
+                  }
                }
+               tracker = ct; // should we care if it's still null?
             }
-            tracker = ct; // should we care if it's still null?
          }
+         finally
+         {
+            inUse = false;
+         }
       }
       return tracker;
    }




More information about the jboss-cvs-commits mailing list