[jboss-cvs] JBossAS SVN: r100247 - in projects/kernel/trunk/dependency/src: test/java/org/jboss/test/dependency/controller/test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Feb 2 07:26:48 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-02-02 07:26:47 -0500 (Tue, 02 Feb 2010)
New Revision: 100247

Modified:
   projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
   projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
Log:
[JBKERNEL-87] Avoid ugly error message when uninstalling ON_DEMAND context with dependencies that need uninstalling

Modified: projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java
===================================================================
--- projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-02-02 10:42:55 UTC (rev 100246)
+++ projects/kernel/trunk/dependency/src/main/java/org/jboss/dependency/plugins/AbstractController.java	2010-02-02 12:26:47 UTC (rev 100247)
@@ -1586,6 +1586,16 @@
                   }
                   if (other.getMode() != ControllerMode.ON_DEMAND)
                      continue;
+                  
+                  //Avoid ugly error thrown by uninstallContext(ControllerContext, boolean) if uninstalling an ON_DEMAND context, which triggers uninstall 
+                  //of contexts dependent on it, which in turn ends up checking the ON_DEMAND context which no longer exists in the original state 
+                  Set<ControllerContext> fromContexts = other.getController().getContextsByState(other.getState());
+                  if (fromContexts.contains(other) == false)
+                  {
+                     if (trace)
+                        log.trace("Could not find ON_DEMAND context " + other.getName() + " in " + other.getState() + " it is probably being uninstalled");
+                     continue;
+                  }
 
                   DependencyInfo otherDependencies = other.getDependencyInfo();
                   if (otherDependencies == null)

Modified: projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java
===================================================================
--- projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java	2010-02-02 10:42:55 UTC (rev 100246)
+++ projects/kernel/trunk/dependency/src/test/java/org/jboss/test/dependency/controller/test/OnDemandDependencyTestCase.java	2010-02-02 12:26:47 UTC (rev 100247)
@@ -371,7 +371,28 @@
       fail("Should have had a failure");
    }
 
+   
+   public void testNoUglyError() throws Throwable
+   {
+      //FIXME This simply runs what used to cause the ugly error mentioned in JBKERNEL-87.
+      //I am not sure how to actually test that this does not happen since errors on uninstall
+      //are not reported back to the user.
+      TestDelegate delegate1 = getDelegate1();
+      ControllerContext context1 = assertInstall(delegate1, ControllerState.DESCRIBED);
 
+      TestDelegate delegate2 = getDelegate2();
+      ControllerContext context2 = assertInstall(delegate2);
+
+      assertContext(context1);
+      
+      assertUninstall(context1);
+      
+      assertContext(context2, ControllerState.CONFIGURED);
+      assertNull(context2.getError());
+      assertNull(context1.getError());
+   }
+
+
    /**
     * When installing 2 contexts as a result of resolving their dependencies or uninstalling
     * 2 contexts as a result of undeploying their dependencies we cannot count on the order the 2 contexts are 




More information about the jboss-cvs-commits mailing list