[jboss-cvs] JBossAS SVN: r86212 - projects/microcontainer/trunk/dependency/src/main/java/org/jboss/dependency/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 23 11:19:34 EDT 2009
Author: adrian at jboss.org
Date: 2009-03-23 11:19:34 -0400 (Mon, 23 Mar 2009)
New Revision: 86212
Modified:
projects/microcontainer/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
Log:
[JBMICROCONT-421] - Be extra paranoid about possible exception paths
Modified: projects/microcontainer/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-03-23 15:13:31 UTC (rev 86211)
+++ projects/microcontainer/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java 2009-03-23 15:19:34 UTC (rev 86212)
@@ -1058,34 +1058,46 @@
toProcess.add(context);
}
}
- for (ControllerContext context : toProcess)
+ try
{
- Object name = context.getName();
- try
+ for (Iterator<ControllerContext> iter = toProcess.iterator(); iter.hasNext(); )
{
- if (fromState.equals(context.getState()) == false)
+ ControllerContext context = iter.next();
+ iter.remove();
+ Object name = context.getName();
+ try
{
- if (trace)
- log.trace("Skipping already installed " + name + " for " + toState.getStateString());
- }
- else
- {
- if (trace)
- log.trace("Dependencies resolved " + name + " for " + toState.getStateString());
-
- if (incrementState(context, trace))
+ if (fromState.equals(context.getState()) == false)
{
- resolutions = true;
if (trace)
- log.trace(name + " " + toState.getStateString());
+ log.trace("Skipping already installed " + name + " for " + toState.getStateString());
}
-
+ else
+ {
+ if (trace)
+ log.trace("Dependencies resolved " + name + " for " + toState.getStateString());
+
+ if (incrementState(context, trace))
+ {
+ resolutions = true;
+ if (trace)
+ log.trace(name + " " + toState.getStateString());
+ }
+
+ }
}
+ finally
+ {
+ installing.remove(context);
+ }
}
- finally
- {
+ }
+ finally
+ {
+ // If we get here something has gone seriously wrong,
+ // but try to tidyup as much state as possible
+ for (ControllerContext context : toProcess)
installing.remove(context);
- }
}
}
More information about the jboss-cvs-commits
mailing list