public synchronized void destroyApplication(AppInfo appInfo) throws UndeployException {
deployedApplications.remove(appInfo.path);
logger.info("destroyApplication.start", appInfo.path);
SystemInstance.get().fireEvent(new AssemblerBeforeApplicationDestroyed(appInfo));
final AppContext appContext = containerSystem.getAppContext(appInfo.appId);
if (null == appContext) {
logger.warning("Application id '" + appInfo.appId + "' not found in: " + Arrays.toString(containerSystem.getAppContextKeys()));