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 Context globalContext = containerSystem.getJNDIContext();
final AppContext appContext = containerSystem.getAppContext(appInfo.appId);
if (null == appContext) {