[384781] application.xml file is corrupted after importing an EAR project
diff --git a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
index 33707a4..5fc3c25 100644
--- a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name.0
 Bundle-SymbolicName: org.eclipse.jst.j2ee; singleton:=true
-Bundle-Version: 1.1.218.qualifier
+Bundle-Version: 1.1.219.qualifier
 Bundle-Activator: org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin
 Bundle-Vendor: %Bundle-Vendor.0
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentImportOperation.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentImportOperation.java
index 81ed616..b8eb27a 100644
--- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentImportOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentImportOperation.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * Copyright (c) 2003, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -21,6 +21,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jem.util.UIContextDetermination;
 import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
 import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
@@ -32,6 +33,7 @@
 import org.eclipse.jst.j2ee.internal.archive.ArchiveWrapper;
 import org.eclipse.jst.j2ee.internal.archive.ComponentArchiveSaveAdapter;
 import org.eclipse.jst.j2ee.internal.archive.EARComponentArchiveSaveAdapter;
+import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
 import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetProjectCreationDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.ICreateReferenceComponentsDataModelProperties;
 import org.eclipse.wst.common.componentcore.datamodel.properties.IFacetProjectCreationDataModelProperties;
@@ -77,10 +79,16 @@
 	 *            the progress monitor to use to display progress
 	 */
 	protected void doExecute(IProgressMonitor monitor) throws ExecutionException {
-		super.doExecute(monitor);
 		ExecutionException firstNestedException = null;
-		List modelsToImport = (List) model.getProperty(IEARComponentImportDataModelProperties.HANDLED_PROJECT_MODELS_LIST);
+		
 		try {
+			if( UIContextDetermination.getCurrentContext() == UIContextDetermination.HEADLESS_CONTEXT ) {
+				J2EEComponentClasspathUpdater.getInstance().setSuspendPostChangeEvents(true);
+			}
+			
+			super.doExecute(monitor);
+			List modelsToImport = (List) model.getProperty(IEARComponentImportDataModelProperties.HANDLED_PROJECT_MODELS_LIST);
+			
 			IDataModel importModel = null;
 			// make sure the wars handle importing their own web libs
 			for (int i = modelsToImport.size() - 1; i > 0; i--) {
@@ -181,6 +189,10 @@
 			}
 			resetDisposeImportModels();
 			monitor.worked(DISPOSE_WORK);
+			
+			if( UIContextDetermination.getCurrentContext() == UIContextDetermination.HEADLESS_CONTEXT ) {
+				J2EEComponentClasspathUpdater.getInstance().setSuspendPostChangeEvents(false);
+			}
 		}
 		if (firstNestedException != null) {
 			throw firstNestedException;
diff --git a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
index 4044a6f..8f2b36c 100644
--- a/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
+++ b/plugins/org.eclipse.jst.j2ee/common/org/eclipse/jst/j2ee/internal/common/classpath/J2EEComponentClasspathUpdater.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2003, 2007 IBM Corporation and others.
+ * Copyright (c) 2003, 2012 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -8,6 +8,7 @@
  * Contributors:
  * IBM Corporation - initial API and implementation
  *******************************************************************************/
+
 package org.eclipse.jst.j2ee.internal.common.classpath;
 
 import java.util.Arrays;
@@ -73,6 +74,8 @@
 
 	private static J2EEComponentClasspathUpdater instance = null;
 
+	private static boolean suspendPostChangeEvents = false;
+
 	private static boolean updateDependencyGraph = true;
 
 	private int pauseCount = 0;
@@ -412,11 +415,12 @@
 					}
 					break;
 				case IResourceChangeEvent.POST_CHANGE:
-					scheduleJob = true;
-					event.getDelta().accept(this);
-					IResourceDelta[] d = event.getDelta().getAffectedChildren();
-					findNode(d);
-			
+					if(!suspendPostChangeEvents) {
+						scheduleJob = true;
+						event.getDelta().accept(this);
+						IResourceDelta[] d = event.getDelta().getAffectedChildren();
+						findNode(d);
+					}
 					break;
 			}
 		} catch (CoreException e) {
@@ -590,4 +594,12 @@
 	{
 		updateDependencyGraph = value;
 	}
+	
+	public void setSuspendPostChangeEvents(boolean suspendAction) {
+		J2EEComponentClasspathUpdater.suspendPostChangeEvents = suspendAction;
+	}
+
+	public boolean isSuspendPostChangeEvents() {
+		return suspendPostChangeEvents;
+	}
 }