Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 265726 Details for
Bug 508685
Deadlock between DependencyGraph and StructureEdit
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Acquire the lock for StructureEdit in ComponentManager
bug508685.patch (text/plain), 2.35 KB, created by
Carl Anderson
on 2016-12-05 14:01:13 EST
(
hide
)
Description:
Acquire the lock for StructureEdit in ComponentManager
Filename:
MIME Type:
Creator:
Carl Anderson
Created:
2016-12-05 14:01:13 EST
Size:
2.35 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.wst.common.modulecore >diff --git modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java >index 58f80d4..d359288 100644 >--- modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java >+++ modulecore-src/org/eclipse/wst/common/componentcore/internal/util/ComponentImplManager.java >@@ -25,6 +25,7 @@ > import org.eclipse.core.runtime.ISafeRunnable; > import org.eclipse.core.runtime.Path; > import org.eclipse.core.runtime.SafeRunner; >+import org.eclipse.core.runtime.jobs.ILock; > import org.eclipse.jem.util.RegistryReader; > import org.eclipse.jem.util.emf.workbench.ISynchronizerExtender; > import org.eclipse.jem.util.emf.workbench.ProjectResourceSet; >@@ -37,6 +38,7 @@ > import org.eclipse.wst.common.componentcore.internal.resources.VirtualFolder; > import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; > import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; >+import org.eclipse.wst.common.internal.emfworkbench.edit.EMFWorkbenchEditContextFactory; > import org.eclipse.wst.common.project.facet.core.IFacetedProject; > import org.eclipse.wst.common.project.facet.core.IProjectFacet; > import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; >@@ -211,13 +213,24 @@ > } > > IComponentImplFactory factory = findFactoryForProject(project, descriptors); >+ // acquire the lock that StructureEdit will need already, to prevent others from locking that before calling createComponent() - see bug 508685 > if(null != factory){ >- component = factory.createComponent(project); >- if(component != null) { >- ComponentCacheManager.instance().setComponent(project, component); >- registerListener(project); >+ ILock lock = EMFWorkbenchEditContextFactory.getProjectLockObject(project); >+ try{ >+ if(null != lock){ >+ lock.acquire(); >+ } >+ component = factory.createComponent(project); >+ if(component != null) { >+ ComponentCacheManager.instance().setComponent(project, component); >+ registerListener(project); >+ } >+ return component; >+ } finally{ >+ if(null != lock){ >+ lock.release(); >+ } > } >- return component; > } > } catch (Exception e) { > // Just return a default component
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 508685
:
265726
|
265873