[jboss-cvs] JBossAS SVN: r99802 - in projects/kernel/branches/resolver: kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jan 22 10:03:24 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-01-22 10:03:23 -0500 (Fri, 22 Jan 2010)
New Revision: 99802
Modified:
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/AbstractDependencyResolverMatcher.java
projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java
projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcher.java
Log:
ContextualInjectionDependencyResolverMatcher.uninstall() was broken. Pull error handling up into base class
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/AbstractDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/AbstractDependencyResolverMatcher.java 2010-01-22 13:24:49 UTC (rev 99801)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/AbstractDependencyResolverMatcher.java 2010-01-22 15:03:23 UTC (rev 99802)
@@ -40,6 +40,10 @@
return item.getDependentState();
}
+ protected void handleCleanUpError(DependencyItem item)
+ {
+ throw new IllegalStateException("Inconsistent state cleaning up " + item);
+ }
}
Modified: projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java 2010-01-22 13:24:49 UTC (rev 99801)
+++ projects/kernel/branches/resolver/dependency/src/main/java/org/jboss/dependency/plugins/resolver/indexing/NameDependencyResolverMatcher.java 2010-01-22 15:03:23 UTC (rev 99802)
@@ -118,15 +118,14 @@
ConcurrentMap<Object, List<ControllerContext>> contextsByName = contextsByState.get(getDependentState(item));
if (contextsByName == null)
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
List<ControllerContext> contexts = contextsByName.get(name);
if (contexts == null)
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
if (!contexts.remove(owner))
- throw new IllegalStateException("Inconsistent state");
-
+ handleCleanUpError(item);
}
-
+
public boolean hasDependencies(Object name)
{
for (ConcurrentMap<Object, List<ControllerContext>> contextsByName : contextsByState.values())
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java 2010-01-22 13:24:49 UTC (rev 99801)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/ContextualInjectionDependencyResolverMatcher.java 2010-01-22 15:03:23 UTC (rev 99802)
@@ -92,12 +92,9 @@
if (owner.getController().getStates().isBeforeState(getDependentState(item), ControllerState.INSTALLED))
throw new IllegalArgumentException(item + " has a dependent state of " + getDependentState(item) + " which is before the first allowed: " + ControllerState.INSTALLED);
- Object dependency = item.getIDependOn();
- if (dependency instanceof QualifierKey == false && dependency instanceof Class<?> == false)
- throw new IllegalStateException("Dependency is not a QualifierKey or a class: '" + dependency + "' in " + item);
- Class<?> clazz = dependency instanceof QualifierKey ? ((QualifierKey)dependency).getType() : (Class<?>)dependency;
+ Class<?> clazz = getDependencyClass(item);
- ConcurrentMap<Class<?>, List<ControllerContext>> contextsByClass = contextsByState.get(clazz);
+ ConcurrentMap<Class<?>, List<ControllerContext>> contextsByClass = contextsByState.get(getDependentState(item));
if (contextsByClass == null)
{
contextsByClass = new ConcurrentHashMap<Class<?>, List<ControllerContext>>();
@@ -105,7 +102,7 @@
if (old != null)
contextsByClass = old;
}
- List<ControllerContext> contexts = contextsByClass.get(getDependentState(item));
+ List<ControllerContext> contexts = contextsByClass.get(clazz);
if (contexts == null)
{
contexts = new CopyOnWriteArrayList<ControllerContext>();
@@ -124,19 +121,21 @@
if (item instanceof AbstractDependencyItem == false)
throw new IllegalStateException("item is not an instance of AbstractDependencyItem");
- Object dependency = item.getIDependOn();
- if (dependency instanceof QualifierKey == false)
- throw new IllegalStateException("Dependency is not a QualifierKey or a class: '" + dependency + "' in " + item);
- Class<?> clazz = ((QualifierKey)dependency).getType();
-
ConcurrentMap<Class<?>, List<ControllerContext>> contextsByClass = contextsByState.get(getDependentState(item));
- if (contextsByState == null)
- throw new IllegalStateException("Inconsistent state");
- List<ControllerContext> contexts = contextsByClass.get(clazz);
+ if (contextsByClass == null)
+ handleCleanUpError(item);
+ List<ControllerContext> contexts = contextsByClass.get(getDependencyClass(item));
if (contexts == null)
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
if (!contexts.remove(owner))
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
}
+ private Class<?> getDependencyClass(DependencyItem item)
+ {
+ Object dependency = item.getIDependOn();
+ if (dependency instanceof QualifierKey == false && dependency instanceof Class<?> == false)
+ throw new IllegalStateException("Dependency is not a QualifierKey or a class: '" + dependency + "' in " + item);
+ return dependency instanceof QualifierKey ? ((QualifierKey)dependency).getType() : (Class<?>)dependency;
+ }
}
Modified: projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcher.java
===================================================================
--- projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcher.java 2010-01-22 13:24:49 UTC (rev 99801)
+++ projects/kernel/branches/resolver/kernel/src/main/java/org/jboss/kernel/plugins/resolver/indexing/SupplyDemandDependencyResolverMatcher.java 2010-01-22 15:03:23 UTC (rev 99802)
@@ -23,7 +23,6 @@
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -73,12 +72,10 @@
public void unregisterDependency(ControllerContext owner, DependencyItem item)
{
- Object name = item.getIDependOn();
-
List<ControllerContext> contexts = contextsByState.get(getDependentState(item));
if (contexts == null)
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
if (!contexts.remove(owner))
- throw new IllegalStateException("Inconsistent state");
+ handleCleanUpError(item);
}
}
More information about the jboss-cvs-commits
mailing list