View | Details | Raw Unified | Return to bug 508685 | Differences between
and this patch

Collapse All | Expand All

(-)modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java (-1 / +16 lines)
Lines 25-30 Link Here
25
import org.eclipse.core.runtime.ISafeRunnable;
25
import org.eclipse.core.runtime.ISafeRunnable;
26
import org.eclipse.core.runtime.Path;
26
import org.eclipse.core.runtime.Path;
27
import org.eclipse.core.runtime.SafeRunner;
27
import org.eclipse.core.runtime.SafeRunner;
28
import org.eclipse.core.runtime.jobs.ILock;
28
import org.eclipse.jem.util.RegistryReader;
29
import org.eclipse.jem.util.RegistryReader;
29
import org.eclipse.jem.util.emf.workbench.ISynchronizerExtender;
30
import org.eclipse.jem.util.emf.workbench.ISynchronizerExtender;
30
import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
31
import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
Lines 37-42 Link Here
37
import org.eclipse.wst.common.componentcore.internal.resources.VirtualFolder;
38
import org.eclipse.wst.common.componentcore.internal.resources.VirtualFolder;
38
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
39
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
39
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
40
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
41
import org.eclipse.wst.common.internal.emfworkbench.edit.EMFWorkbenchEditContextFactory;
40
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
42
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
41
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
43
import org.eclipse.wst.common.project.facet.core.IProjectFacet;
42
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
44
import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
Lines 200-206 Link Here
200
	}
202
	}
201
203
202
	public IVirtualComponent createComponent(IProject project) {
204
	public IVirtualComponent createComponent(IProject project) {
203
		return createComponent(project, true);
205
		IVirtualComponent retVal = null;
206
		// acquire the lock that StructureEdit will need already, to prevent others from locking that before calling createComponent() - see bug 508685
207
		ILock lock = EMFWorkbenchEditContextFactory.getProjectLockObject(project);
208
		try{
209
			if(null != lock){
210
				lock.acquire();
211
			}
212
			retVal = createComponent(project, true);
213
		} finally{
214
			if(null != lock){
215
				lock.release();
216
			}
217
		}
218
		return retVal;
204
	}
219
	}
205
220
206
	public synchronized IVirtualComponent createComponent(IProject project, boolean checkSettings) {
221
	public synchronized IVirtualComponent createComponent(IProject project, boolean checkSettings) {

Return to bug 508685