The question is which constructs should be working and which should not. I have added a testErrorInContainedStartRedeployAfterError to the org.jboss.test.system.controller.lifecycle.test.LifecycleRedeployAfterErrorTest on the MC_VDF_WORK branch, and although this does not show a problem with being able to redeploy a failed deployment, it does show that the errors from the lifecycle methods are not being propagated back to the caller. From the test logging, the ContainedMBeanService is throwing an error because it did not see the expected error from the contained SimpleMBean start:

1720 ERROR [AbstractKernelController] Error installing to Start: name=jboss.test:type=test state=Create mode=Manual requiredState=Installed
java.lang.Error: Did not see expected ERRORINSTART from: jboss.test:contained=SimpleMBean,type=test
    at org.jboss.test.system.controller.support.ContainedMBeanService.startService(ContainedMBeanService.java:87)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
    at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
    at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;J)Ljava.lang.Object;(Unknown Source)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
    at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:167)
    at $Proxy0.start()V(Unknown Source)
    at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
    at org.jboss.system.microcontainer.ServiceControllerContextAction.install(ServiceControllerContextAction.java:46)
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
    at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:198)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:596)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:346)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:438)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:379)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:263)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:164)
    at org.jboss.system.ServiceController.doChange(ServiceController.java:632)
    at org.jboss.system.ServiceController.start(ServiceController.java:407)
    at org.jboss.test.system.controller.SimpleSARDeployer.start(SimpleSARDeployer.java:131)
    at org.jboss.test.system.controller.SimpleSARDeployer.deploy(SimpleSARDeployer.java:86)
    at org.jboss.test.system.controller.ControllerTestDelegate.deploy(ControllerTestDelegate.java:176)
    at org.jboss.test.system.controller.ControllerTestDelegate.assertDeployFailure(ControllerTestDelegate.java:227)

This is the first change in behavior that is breaking Anil's example.

Adrian Brock wrote:
On Wed, 2006-08-23 at 09:53 -0500, Anil Saldhana wrote:
  
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=89066

What about getting the ServiceController to get out of the Error state
and undeploy the service when asked to?
    

It already does when you undeploy, I have a test for just that.
Unless you have a test that shows otherwise.