An issue has been raised (
JBAS-1262) describing how redeployment of ears fails after the validation of a subcomponent of an ear has failed.
I have had a look at the forum post that you mentioned in the issue, one main problem that needs to be resolved is that the destroy method can't reverse the effects of the init method unless create has been called.
I have been looking at one possible fix for the current problem until the deployers can be made more atomic.
In the MainDeployer at present the create method creates the sub-deployments before creating the top deployment, the destroy method destroys the deployments in the same order.
This problem is no longer present if the create method is changed to create the top deployment before the sub-deployments are created. If one of the sub-deployments fails in create the ear will have already been registered fully so destroy will succeed and allow a subsequent deployment of the same ear.