[jboss-cvs] JBossAS SVN: r58699 - in projects/microcontainer/trunk: dependency/src/main/org/jboss/dependency/plugins dependency/src/main/org/jboss/dependency/spi kernel/src/main/org/jboss/kernel/plugins/registry

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Nov 28 07:30:25 EST 2006


Author: adrian at jboss.org
Date: 2006-11-28 07:30:18 -0500 (Tue, 28 Nov 2006)
New Revision: 58699

Modified:
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java
   projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
Log:
[JBMICROCONT-112] - Fix infinite loop on internal error
[JBMICROCONT-111] - Update context state inside the controller's internal lock

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2006-11-28 00:49:09 UTC (rev 58698)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2006-11-28 12:30:18 UTC (rev 58699)
@@ -409,6 +409,7 @@
          }
          Set<ControllerContext> notInstalled = contextsByState.get(ControllerState.NOT_INSTALLED);
          notInstalled.add(context);
+         context.setState(ControllerState.NOT_INSTALLED);
       }
       else
       {
@@ -448,6 +449,7 @@
       if (fromContexts != null)
          fromContexts.remove(context);
       toContexts.add(context);
+      context.setState(toState);
       return true;
    }
 
@@ -634,10 +636,7 @@
 
       Set<ControllerContext> fromContexts = contextsByState.get(fromState);
       if (fromContexts == null || fromContexts.remove(context) == false)
-      {
-         log.error("INTERNAL ERROR: context not found in previous state " + fromState.getStateString() + " context=" + context.toShortString(), new Exception("STACKTRACE"));
-         return;
-      }
+         throw new Error("INTERNAL ERROR: context not found in previous state " + fromState.getStateString() + " context=" + context.toShortString(), new Exception("STACKTRACE"));
 
       DependencyInfo dependencies = context.getDependencyInfo();
       Set dependsOnMe = dependencies.getDependsOnMe(null);
@@ -678,6 +677,7 @@
       ControllerState toState = states.get(toIndex);
       Set<ControllerContext> toContexts = contextsByState.get(toState);
       toContexts.add(context);
+      context.setState(toState);
 
       unlockWrite();
       try

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2006-11-28 00:49:09 UTC (rev 58698)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2006-11-28 12:30:18 UTC (rev 58699)
@@ -220,18 +220,22 @@
       flushJBossObjectCache();
    }
 
+   public void setState(ControllerState state)
+   {
+      this.state = state;
+      flushJBossObjectCache();
+   }
+
    public void install(ControllerState fromState, ControllerState toState) throws Throwable
    {
       this.error = null;
+      flushJBossObjectCache();
       actions.install(this, fromState, toState);
-      this.state = toState;
-      flushJBossObjectCache();
    }
 
    public void uninstall(ControllerState fromState, ControllerState toState)
    {
       this.error = null;
-      this.state = toState;
       flushJBossObjectCache();
       actions.uninstall(this, fromState, toState);
    }

Modified: projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2006-11-28 00:49:09 UTC (rev 58698)
+++ projects/microcontainer/trunk/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2006-11-28 12:30:18 UTC (rev 58699)
@@ -89,6 +89,13 @@
     * @return the state
     */
    ControllerState getState();
+   
+   /**
+    * Set the state
+    * 
+    * @param state the state
+    */
+   void setState(ControllerState state);
 
    /**
     * Get the required state

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2006-11-28 00:49:09 UTC (rev 58698)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2006-11-28 12:30:18 UTC (rev 58699)
@@ -103,6 +103,11 @@
    {
       return ControllerState.ERROR;
    }
+   
+   public void setState(ControllerState state)
+   {
+      throw new org.jboss.util.NotImplementedException("setState");
+   }
 
    public ControllerState getRequiredState()
    {




More information about the jboss-cvs-commits mailing list