Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjlanuti2006-05-12 15:04:18 +0000
committerjlanuti2006-05-12 15:04:18 +0000
commit7e6f7c743cce4571bba8d7771cc2541a12e90e16 (patch)
treeadaa225e5cb0e18469aec9424901faf992512c26 /plugins
parent99e17c70eca98d15c93a4c6e990f3f42ae1b5804 (diff)
downloadwebtools.javaee-7e6f7c743cce4571bba8d7771cc2541a12e90e16.tar.gz
webtools.javaee-7e6f7c743cce4571bba8d7771cc2541a12e90e16.tar.xz
webtools.javaee-7e6f7c743cce4571bba8d7771cc2541a12e90e16.zip
[141545] fix for deadlocks
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java113
1 files changed, 58 insertions, 55 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
index 211a5203f..c32c7939a 100644
--- a/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
+++ b/plugins/org.eclipse.jst.j2ee.webservice/webservice/org/eclipse/jst/j2ee/internal/webservice/helper/WebServicesManager.java
@@ -79,8 +79,8 @@ import org.eclipse.wst.common.internal.emfworkbench.integration.EditModelListene
*/
public class WebServicesManager implements EditModelListener, IResourceChangeListener, IResourceDeltaVisitor {
- private HashMap wsArtifactEdits;
- private HashMap wsClientArtifactEdits;
+ private HashMap wsArtifactEdits = new HashMap();
+ private HashMap wsClientArtifactEdits = new HashMap();
private static WebServicesManager INSTANCE = null;
private List listeners;
private List removedListeners = new ArrayList();
@@ -108,7 +108,7 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
}
- private synchronized void collectArtifactEdits() {
+ private void collectArtifactEdits() {
IProject[] projects = ProjectUtilities.getAllProjects();
for (int i = 0; i < projects.length; i++) {
IProject project = projects[i];
@@ -126,7 +126,7 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
wsddArtifactEdit = WSDDArtifactEdit.getWSDDArtifactEditForRead(component);
if (wsddArtifactEdit != null) {
wsddArtifactEdit.addListener(this);
- getWSArtifactEdits().put(component.getProject(),wsddArtifactEdit);
+ wsArtifactEdits.put(component.getProject(),wsddArtifactEdit);
}
} catch (Exception e) {
if (wsddArtifactEdit != null) wsddArtifactEdit.dispose();
@@ -135,7 +135,7 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
wscddArtifactEdit = WSCDDArtifactEdit.getWSCDDArtifactEditForRead(component);
if (wscddArtifactEdit != null) {
wscddArtifactEdit.addListener(this);
- getWSClientArtifactEdits().put(component.getProject(),wscddArtifactEdit);
+ wsClientArtifactEdits.put(component.getProject(),wscddArtifactEdit);
}
} catch (Exception e) {
if (wscddArtifactEdit != null) wscddArtifactEdit.dispose();
@@ -146,19 +146,23 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
/**
* @return Returns the editModels.
*/
- private HashMap getWSArtifactEdits() {
+ private Iterator getWSArtifactEditsIterator() {
if (wsArtifactEdits == null)
wsArtifactEdits = new HashMap();
- return wsArtifactEdits;
+ List wsEdits = new ArrayList();
+ wsEdits.addAll(wsArtifactEdits.values());
+ return wsEdits.iterator();
}
/**
* @return Returns the editModels.
*/
- private HashMap getWSClientArtifactEdits() {
+ private Iterator getWSClientArtifactEditsIterator() {
if (wsClientArtifactEdits == null)
wsClientArtifactEdits = new HashMap();
- return wsClientArtifactEdits;
+ List wsClients = new ArrayList();
+ wsClients.addAll(wsClientArtifactEdits.values());
+ return wsClients.iterator();
}
private List getListeners() {
@@ -180,7 +184,7 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
*
* @see org.eclipse.wst.common.internal.emfworkbench.integration.EditModelListener#editModelChanged(org.eclipse.wst.common.internal.emfworkbench.integration.EditModelEvent)
*/
- public synchronized void editModelChanged(EditModelEvent anEvent) {
+ public void editModelChanged(EditModelEvent anEvent) {
if (anEvent == null)
return;
if (anEvent.getEventCode()==EditModelEvent.UNLOADED_RESOURCE) {
@@ -196,19 +200,19 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
ArtifactEditModel editModel = (ArtifactEditModel) anEvent.getEditModel();
if (editModel == null || editModel.getProject() == null)
return;
- WSDDArtifactEdit wsArtifactEdit = (WSDDArtifactEdit) getWSArtifactEdits().get(editModel.getProject());
+ WSDDArtifactEdit wsArtifactEdit = (WSDDArtifactEdit) wsArtifactEdits.get(editModel.getProject());
if (wsArtifactEdit != null) {
try {
- getWSArtifactEdits().remove(editModel.getProject());
+ wsArtifactEdits.remove(editModel.getProject());
wsArtifactEdit.removeListener(this);
} finally {
wsArtifactEdit.dispose();
}
}
- WSCDDArtifactEdit wsClientArtifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(editModel.getProject());
+ WSCDDArtifactEdit wsClientArtifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(editModel.getProject());
if (wsClientArtifactEdit != null) {
try {
- getWSClientArtifactEdits().remove(editModel.getProject());
+ wsClientArtifactEdits.remove(editModel.getProject());
wsClientArtifactEdit.removeListener(this);
} finally {
wsClientArtifactEdit.dispose();
@@ -218,25 +222,25 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
}
}
- private synchronized WSDDArtifactEdit getWSArtifactEdit(IProject handle) {
- WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) getWSArtifactEdits().get(handle);
+ private WSDDArtifactEdit getWSArtifactEdit(IProject handle) {
+ WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) wsArtifactEdits.get(handle);
if (artifactEdit == null) {
artifactEdit = WSDDArtifactEdit.getWSDDArtifactEditForRead(handle);
if (artifactEdit != null) {
artifactEdit.addListener(this);
- getWSArtifactEdits().put(handle,artifactEdit);
+ wsArtifactEdits.put(handle,artifactEdit);
}
}
return artifactEdit;
}
- private synchronized WSCDDArtifactEdit getWSClientArtifactEdit(IProject handle) {
- WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(handle);
+ private WSCDDArtifactEdit getWSClientArtifactEdit(IProject handle) {
+ WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(handle);
if (artifactEdit == null) {
artifactEdit = WSCDDArtifactEdit.getWSCDDArtifactEditForRead(handle);
if (artifactEdit != null) {
artifactEdit.addListener(this);
- getWSClientArtifactEdits().put(handle,artifactEdit);
+ wsClientArtifactEdits.put(handle,artifactEdit);
}
}
@@ -289,22 +293,22 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return false;
}
- private synchronized void releaseArtifactEdits() {
- Iterator iter = getWSArtifactEdits().values().iterator();
+ private void releaseArtifactEdits() {
+ Iterator iter = wsArtifactEdits.values().iterator();
while (iter.hasNext()) {
WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) iter.next();
artifactEdit.removeListener(this);
artifactEdit.dispose();
}
- getWSArtifactEdits().clear();
+ wsArtifactEdits.clear();
- iter = getWSClientArtifactEdits().values().iterator();
+ iter = wsClientArtifactEdits.values().iterator();
while (iter.hasNext()) {
WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) iter.next();
artifactEdit.removeListener(this);
artifactEdit.dispose();
}
- getWSClientArtifactEdits().clear();
+ wsClientArtifactEdits.clear();
}
/*
@@ -346,9 +350,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
/**
* @return all internal web services instances in workspace
*/
- public synchronized List getInternalWebServices() {
+ public List getInternalWebServices() {
List result = new ArrayList();
- Iterator iter = getWSArtifactEdits().values().iterator();
+ Iterator iter = getWSArtifactEditsIterator();
while (iter.hasNext()) {
WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) iter.next();
WebServices webServices = artifactEdit.getWebServices();
@@ -449,14 +453,14 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
INSTANCE = null;
}
- public synchronized Resource getWSDLResource(WebServiceDescription webService) {
+ public Resource getWSDLResource(WebServiceDescription webService) {
if (webService == null)
return null;
String wsdlFileName = webService.getWsdlFile();
Resource res = null;
IVirtualResource[] resources = ComponentCore.createResources(WorkbenchResourceHelper.getFile(webService));
if (resources == null) return res;
- WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) getWSArtifactEdits().get(resources[0].getComponent().getProject());
+ WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) wsArtifactEdits.get(resources[0].getComponent().getProject());
if (artifactEdit!=null)
res = artifactEdit.getWsdlResource(wsdlFileName);
return res;
@@ -578,9 +582,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return result;
}
- public synchronized List getWorkspace13ServiceRefs() {
+ public List getWorkspace13ServiceRefs() {
List result = new ArrayList();
- Iterator iter = getWSClientArtifactEdits().values().iterator();
+ Iterator iter = getWSClientArtifactEditsIterator();
while (iter.hasNext()) {
WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) iter.next();
WebServicesResource res = artifactEdit.getWscddXmiResource();
@@ -590,10 +594,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return result;
}
- public synchronized List get13ServiceRefs(IProject handle) {
-
+ public List get13ServiceRefs(IProject handle) {
List result = new ArrayList();
- WSCDDArtifactEdit wsClientArtifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(handle);
+ WSCDDArtifactEdit wsClientArtifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(handle);
if (wsClientArtifactEdit !=null) {
WebServicesResource res = wsClientArtifactEdit.getWscddXmiResource();
if (res != null && res.isLoaded() && res.getWebServicesClient() != null)
@@ -602,9 +605,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return result;
}
- public synchronized List getWorkspace14ServiceRefs() {
+ public List getWorkspace14ServiceRefs() {
List result = new ArrayList();
- Iterator iter = getWSClientArtifactEdits().values().iterator();
+ Iterator iter = getWSClientArtifactEditsIterator();
while (iter.hasNext()) {
WSCDDArtifactEdit wscArtifactEdit = (WSCDDArtifactEdit) iter.next();
ArtifactEdit artifactEdit = ArtifactEdit.getArtifactEditForRead(wscArtifactEdit.getProject());
@@ -641,9 +644,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return !(ref.eContainer() instanceof WebServicesClient);
}
- public synchronized List getWorkspaceWSILFiles() {
+ public List getWorkspaceWSILFiles() {
List result = new ArrayList();
- Iterator iter = getWSArtifactEdits().values().iterator();
+ Iterator iter = getWSArtifactEditsIterator();
while (iter.hasNext()) {
WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) iter.next();
List files = artifactEdit.getWSILResources();
@@ -656,9 +659,9 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
return result;
}
- public synchronized List getWorkspaceWSDLResources() {
+ public List getWorkspaceWSDLResources() {
List result = new ArrayList();
- Iterator iter = getWSArtifactEdits().values().iterator();
+ Iterator iter = getWSArtifactEditsIterator();
while (iter.hasNext()) {
WSDDArtifactEdit artifactEdit = (WSDDArtifactEdit) iter.next();
IProject project = artifactEdit.getProject();
@@ -689,8 +692,8 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
* @param bean
* @return
*/
- public synchronized List get13ServiceRefs(EnterpriseBean bean) {
- WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(WorkbenchResourceHelper.getFile(bean).getProject());
+ public List get13ServiceRefs(EnterpriseBean bean) {
+ WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(WorkbenchResourceHelper.getFile(bean).getProject());
if (artifactEdit !=null) {
WebServicesResource res = artifactEdit.getWscddXmiResource();
if (res != null && res.getWebServicesClient() != null) {
@@ -710,11 +713,11 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
* @param client
* @return
*/
- public synchronized List get13ServiceRefs(ApplicationClient client) {
+ public List get13ServiceRefs(ApplicationClient client) {
IProject handle = getComponentProject(WorkbenchResourceHelper.getFile(client));
if (handle == null)
return Collections.EMPTY_LIST;
- WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(handle);
+ WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(handle);
if (artifactEdit !=null) {
WebServicesResource res = artifactEdit.getWscddXmiResource();
if (res != null) {
@@ -730,11 +733,11 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
* @param webapp
* @return
*/
- public synchronized List get13ServiceRefs(WebApp webapp) {
+ public List get13ServiceRefs(WebApp webapp) {
IProject handle = getComponentProject(WorkbenchResourceHelper.getFile(webapp));
if (handle == null)
return Collections.EMPTY_LIST;
- WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(handle);
+ WSCDDArtifactEdit artifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(handle);
if (artifactEdit !=null) {
WebServicesResource res = artifactEdit.getWscddXmiResource();
if (res != null) {
@@ -751,7 +754,7 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
*
* @see org.eclipse.core.resources.IResourceDeltaVisitor#visit(org.eclipse.core.resources.IResourceDelta)
*/
- public synchronized boolean visit(IResourceDelta delta) throws CoreException {
+ public boolean visit(IResourceDelta delta) throws CoreException {
IResource resource = delta.getResource();
if (resource.getType() == IResource.PROJECT) {
IProject p = (IProject) resource;
@@ -775,22 +778,22 @@ public class WebServicesManager implements EditModelListener, IResourceChangeLis
else if ((delta.getKind() == IResourceDelta.CHANGED && ((delta.getFlags() & IResourceDelta.OPEN) != 0))
|| (delta.getKind() == IResourceDelta.REMOVED)){
boolean state = true;
- List wsddArtifactEditsToRemove = getAssociatedArtifactEditKeys(p,getWSArtifactEdits());
+ List wsddArtifactEditsToRemove = getAssociatedArtifactEditKeys(p,wsArtifactEdits);
for (int i=0; i<wsddArtifactEditsToRemove.size(); i++) {
IProject handle = (IProject) wsddArtifactEditsToRemove.get(i);
- if (handle != null && getWSArtifactEdits().containsKey(handle)) {
- WSDDArtifactEdit wsArtifactEdit = (WSDDArtifactEdit) getWSArtifactEdits().get(handle);
- getWSArtifactEdits().remove(handle);
+ if (handle != null && wsArtifactEdits.containsKey(handle)) {
+ WSDDArtifactEdit wsArtifactEdit = (WSDDArtifactEdit) wsArtifactEdits.get(handle);
+ wsArtifactEdits.remove(handle);
wsArtifactEdit.dispose();
state = false;
}
}
- List wscddArtifactEditsToRemove = getAssociatedArtifactEditKeys(p,getWSClientArtifactEdits());
+ List wscddArtifactEditsToRemove = getAssociatedArtifactEditKeys(p,wsClientArtifactEdits);
for (int i=0; i<wscddArtifactEditsToRemove.size(); i++) {
IProject handle = (IProject) wscddArtifactEditsToRemove.get(i);
- if (handle != null && getWSClientArtifactEdits().containsKey(handle)) {
- WSCDDArtifactEdit wscArtifactEdit = (WSCDDArtifactEdit) getWSClientArtifactEdits().get(handle);
- getWSClientArtifactEdits().remove(handle);
+ if (handle != null && wsClientArtifactEdits.containsKey(handle)) {
+ WSCDDArtifactEdit wscArtifactEdit = (WSCDDArtifactEdit) wsClientArtifactEdits.get(handle);
+ wsClientArtifactEdits.remove(handle);
wscArtifactEdit.dispose();
state = false;
}

Back to the top