Avoid aop xml creation to damage incremental marker updates: STS4037
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/internal/core/ajde/CoreOutputLocationManager.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/internal/core/ajde/CoreOutputLocationManager.java
index eec548d..78c99fd 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/internal/core/ajde/CoreOutputLocationManager.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/internal/core/ajde/CoreOutputLocationManager.java
@@ -279,10 +279,24 @@
 		}
 	}
 	
+	private boolean isComputingXmlFile() {
+		StackTraceElement[] stacktrace = Thread.currentThread().getStackTrace();
+		int max = stacktrace.length;
+		if (max > 6) max = 6;
+		for (int i=(max-1);i>0;i--) {
+			String s = stacktrace[i].toString();
+			// org.aspectj.ajdt.internal.core.builder.AjBuildManager.writeOutxmlFile(AjBuildManager.java:659) probably at i==4
+			if (s.startsWith("org.aspectj.ajdt.internal.core.builder.AjBuildManager.writeOutxmlFile")) {
+				return true;
+			}
+		}	
+		return false;
+	}
+	
 	public File getOutputLocationForClass(File compilationUnit) {
 	    // remember that this file has been asked for
 	    // presumably it is being recompiled
-	    if (Util.isJavaLikeFileName(compilationUnit.getName())) {     
+	    if (Util.isJavaLikeFileName(compilationUnit.getName()) && !isComputingXmlFile()) {     
 	        compiledSourceFiles.add(compilationUnit);
 	    }