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) { |