[321398] Deadlock occuring due to ModuleStructuralModel.checkSync()
diff --git a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
index 094daf5..61b1105 100644
--- a/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.wst.common.modulecore/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %Bundle-Name.0
 Bundle-Vendor: %provider
 Bundle-SymbolicName: org.eclipse.wst.common.modulecore; singleton:=true
-Bundle-Version: 1.2.1.qualifier
+Bundle-Version: 1.2.3.qualifier
 Bundle-Activator: org.eclipse.wst.common.componentcore.internal.ModulecorePlugin
 Bundle-Localization: plugin
 Export-Package: org.eclipse.wst.common.componentcore,
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
index bf37cea..c120a83 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
@@ -19,10 +19,10 @@
 import java.util.List;
 import java.util.Map;
 
+import org.eclipse.core.internal.resources.Workspace;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
@@ -284,15 +284,15 @@
 			if (!compFile.isSynchronized(IResource.DEPTH_ONE)) {
 				File iofile = compFile.getFullPath().toFile();
 				if (iofile.exists() || compFile.exists()) {
-					IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
 					try {
-						// OK wait to get workspace root before refreshing
-						Job.getJobManager().beginRule(root, null);
-						compFile.getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+						Workspace workspace = (Workspace)compFile.getWorkspace();
+						if (workspace.getElementTree().isImmutable())
+						{
+							workspace.newWorkingTree();
+						}
+						((org.eclipse.core.internal.resources.Resource)compFile).getLocalManager().refresh(compFile.getProject(), IResource.DEPTH_INFINITE, true, null);
 					} catch (CoreException ce) {
 						// ignore
-					} finally {
-						Job.getJobManager().endRule(root);
 					}
 				}
 			}