[jboss-cvs] JBossAS SVN: r59361 - in projects/microcontainer/branches/2_0: 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
Thu Jan 4 16:49:26 EST 2007


Author: scott.stark at jboss.org
Date: 2007-01-04 16:49:18 -0500 (Thu, 04 Jan 2007)
New Revision: 59361

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

Modified: projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2007-01-04 18:57:10 UTC (rev 59360)
+++ projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractController.java	2007-01-04 21:49:18 UTC (rev 59361)
@@ -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/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java
===================================================================
--- projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2007-01-04 18:57:10 UTC (rev 59360)
+++ projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/plugins/AbstractControllerContext.java	2007-01-04 21:49:18 UTC (rev 59361)
@@ -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/branches/2_0/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java
===================================================================
--- projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2007-01-04 18:57:10 UTC (rev 59360)
+++ projects/microcontainer/branches/2_0/dependency/src/main/org/jboss/dependency/spi/ControllerContext.java	2007-01-04 21:49:18 UTC (rev 59361)
@@ -91,6 +91,13 @@
    ControllerState getState();
 
    /**
+    * Set the state
+    * 
+    * @param state the state
+    */
+   void setState(ControllerState state);
+
+   /**
     * Get the required state
     * 
     * @return the required state

Modified: projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistry.java
===================================================================
--- projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistry.java	2007-01-04 18:57:10 UTC (rev 59360)
+++ projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistry.java	2007-01-04 21:49:18 UTC (rev 59361)
@@ -24,13 +24,13 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.jboss.kernel.plugins.AbstractKernelObject;
 import org.jboss.kernel.spi.registry.KernelRegistry;
 import org.jboss.kernel.spi.registry.KernelRegistryEntry;
 import org.jboss.kernel.spi.registry.KernelRegistryEntryNotFoundException;
 import org.jboss.kernel.spi.registry.KernelRegistryPlugin;
-import org.jboss.util.collection.CollectionsFactory;
 
 /**
  * Abstract Kernel registry.
@@ -42,7 +42,7 @@
 public abstract class AbstractKernelRegistry extends AbstractKernelObject implements KernelRegistry
 {
    /** The registry factories */
-   protected List<KernelRegistryPlugin> factories = CollectionsFactory.createCopyOnWriteList();
+   protected List<KernelRegistryPlugin> factories = new CopyOnWriteArrayList<KernelRegistryPlugin>();
 
    /**
     * Create an abstract kernel registry

Modified: projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java
===================================================================
--- projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2007-01-04 18:57:10 UTC (rev 59360)
+++ projects/microcontainer/branches/2_0/kernel/src/main/org/jboss/kernel/plugins/registry/AbstractKernelRegistryEntry.java	2007-01-04 21:49:18 UTC (rev 59361)
@@ -104,6 +104,11 @@
       return ControllerState.ERROR;
    }
 
+   public void setState(ControllerState state)
+   {
+      throw new org.jboss.util.NotImplementedException("setState");
+   }
+
    public ControllerState getRequiredState()
    {
       throw new NotImplementedException("getRequiredState");




More information about the jboss-cvs-commits mailing list