[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