private static boolean undeploy(final StandardContext standardContext, final ContextInfo contextInfo) { if (isReady(contextInfo.deployer)) { contextInfo.deployer.unmanageApp(standardContext.getName()); return true; } else if (contextInfo.host != null) { return undeploy(standardContext, contextInfo.host); } else { Container container = contextInfo.standardContext; while (container != null) { if (container instanceof Host) { break; } container = container.getParent(); } return container != null && undeploy(standardContext, container); } }
/** * {@inheritDoc} */ @Override public void undeployWebApps(final AppInfo appInfo) throws Exception { final String version = appVersion(appInfo); for (final WebAppInfo webApp : appInfo.webApps) { final ContextInfo contextInfo = getContextInfo(webApp.host, webApp.contextRoot, version); if (contextInfo != null) { final StandardContext standardContext = contextInfo.standardContext; if (!appInfo.webAppAlone || !appInfo.properties.containsKey("tomee.destroying")) { undeploy(standardContext, contextInfo); final File extracted = Contexts.warPath(standardContext); if (isExtracted(extracted)) { deleteDir(extracted); } removeContextInfo(standardContext); } } } }
undeploy(standardContext, contextInfo); logger.error("Unable to deploy collapsed ear in war " + standardContext.getPath() + ": Exception: " + e.getMessage(), e);
} catch (final Exception e) { logger.error("Unable to deploy collapsed ear in war " + standardContext, e); undeploy(standardContext, contextInfo);