[136732] Updaing 1.5 stream
diff --git a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
index d2efde4..aaf902e 100644
--- a/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
+++ b/plugins/org.eclipse.wst.common.emfworkbench.integration/src/org/eclipse/wst/common/internal/emfworkbench/integration/ResourceSetWorkbenchEditSynchronizer.java
@@ -29,10 +29,11 @@
 import org.eclipse.core.resources.IResourceChangeEvent;
 import org.eclipse.core.resources.IResourceDelta;
 import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.IJobManager;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.common.util.WrappedException;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -64,14 +65,6 @@
 
 	protected List autoloadResourcesURIs = new ArrayList();
 
-	private static final ISchedulingRule NULL_SCHEDULING_RULE= new ISchedulingRule() {
-        public boolean contains(ISchedulingRule rule) {
-                return false;
-        }
-        public boolean isConflicting(ISchedulingRule rule) {
-                return false;
-        }
-	};
 
 
 	/**
@@ -106,7 +99,7 @@
 		Resource resource = null;
 		for (int i = 0; i < deferredRemoveResources.size(); i++) {
 			resource = (Resource) deferredRemoveResources.get(i);
-			getResourceSet().getResources().remove(resource);
+			resourceSet.getResources().remove(resource);
 			resource.unload();
 		}
 	}
@@ -124,7 +117,7 @@
 		for (int i = 0; i < deferredLoadResources.size(); i++) {
 			uri = (URI) deferredLoadResources.get(i);
 			try {
-				getResourceSet().getResource(uri, true);
+				resourceSet.getResource(uri, true);
 			} catch (WrappedException ex) {
 				Logger.getLogger().logError(ex);
 			}
@@ -132,24 +125,36 @@
 		}
 	}
 
-	protected void acceptDelta(IResourceChangeEvent event) {
-		IResourceDelta delta = event.getDelta();
-		// search for changes to any projects using a visitor
+	protected void acceptDelta(final IResourceChangeEvent event) {
 
-        ISchedulingRule rule = null;
-        try {
-                rule = acquireResourceRule(project);
-        		if (delta != null) {
-        			try {
-        				delta.accept(this);
-        			} catch (Exception e) {
-        				Logger.getLogger().logError(e);
-        			}
-        		}
-        } finally {
-                releaseResourceRule(rule);
-        }
+		final IResourceDelta delta = event.getDelta();
 
+		if (ResourcesPlugin.getWorkspace().isTreeLocked()) {
+			primAcceptDelta(delta, event);
+		}
+		else {
+			IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
+				public void run(IProgressMonitor monitor) throws CoreException {
+					primAcceptDelta(delta, event);
+				}
+			};
+			try {
+				ResourcesPlugin.getWorkspace().run(runnable, project, IWorkspace.AVOID_UPDATE, null);
+			} catch (CoreException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+		}
+	}
+
+	private void primAcceptDelta(IResourceDelta delta, IResourceChangeEvent event) {
+		if (delta != null) {
+			try {
+				delta.accept(ResourceSetWorkbenchEditSynchronizer.this);
+			} catch (Exception e) {
+				Logger.getLogger().logError(e);
+			}
+		}
 	}
 
 	/**
@@ -159,8 +164,8 @@
 	protected void release() {
 		if (JEMUtilPlugin.isActivated()) {
 			try {
-				if (getResourceSet() instanceof ProjectResourceSet)
-					((ProjectResourceSet) getResourceSet()).release();
+				if (resourceSet instanceof ProjectResourceSet)
+					((ProjectResourceSet) resourceSet).release();
 			} finally {
 				EMFWorkbenchContextFactory.INSTANCE.removeCachedProject(getProject());
 				dispose();
@@ -275,7 +280,8 @@
 	}
 
 	protected Resource getResource(IFile aFile) {
-		return getResourceSet().getResource(URI.createPlatformResourceURI(aFile.getFullPath().toString()), false);
+		
+		return resourceSet.getResource(URI.createPlatformResourceURI(aFile.getFullPath().toString()), false);
 	}
 
 
@@ -356,12 +362,12 @@
 	}
 
 	public void enableAutoload(URI uri) {
-		URI normalized = getResourceSet().getURIConverter().normalize(uri);
+		URI normalized = resourceSet.getURIConverter().normalize(uri);
 		autoloadResourcesURIs.add(normalized);
 	}
 
 	public void disableAutoload(URI uri) {
-		URI normalized = getResourceSet().getURIConverter().normalize(uri);
+		URI normalized = resourceSet.getURIConverter().normalize(uri);
 		autoloadResourcesURIs.remove(normalized);
 	}
 
@@ -374,32 +380,4 @@
 		getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE | IResourceChangeEvent.POST_CHANGE);
 	}
 
-	protected synchronized ResourceSet getResourceSet(){
-		return resourceSet;
-	}
-	
-	private static void releaseResourceRule(ISchedulingRule rule) {
-        if(rule == null) return;
-        IJobManager manager= Platform.getJobManager();
-        manager.endRule(rule);
-	}
-	
-	private static ISchedulingRule acquireResourceRule(IResource res) {
-	        ISchedulingRule rule = (res != null ? res : NULL_SCHEDULING_RULE);
-	        IJobManager manager= Platform.getJobManager();
-	        Job currentJob = manager.currentJob();
-	        if (currentJob != null) {
-	                ISchedulingRule currentRule = currentJob.getRule();
-	                if (currentRule != null)                                
-	                        return null;
-	        }
-	        try {
-	                manager.beginRule(rule, null);
-	        } catch (IllegalArgumentException ex){
-	                //Catching Scope exception
-	        }
-	        return rule;
-	}
-	
-	
 }