Bug 503733 - Concurrent modification exceptions in JEE5ModelProvider Change-Id: I8c019b6e5e1458fde83184349d4b2026f3fe2ad9 Signed-off-by: Rob Stryker <stryker@redhat.com>
diff --git a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java index 574d0ae..b83cc0a 100644 --- a/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java +++ b/plugins/org.eclipse.jst.jee/jeecreation/org/eclipse/jst/jee/model/internal/JEE5ModelProvider.java
@@ -126,7 +126,7 @@ notifyListeners(evt); } } - private void addManagedResource(XMLResourceImpl res) { + private synchronized void addManagedResource(XMLResourceImpl res) { if (res == null || modelResources.contains(res)) { return; } @@ -399,10 +399,10 @@ /** * Remove reference to the aResource. */ - protected boolean removeResource(Resource aResource) { + protected synchronized boolean removeResource(Resource aResource) { if (aResource != null) { aResource.eAdapters().remove(resourceAdapter); - return getResources().remove(aResource); + return modelResources.remove(aResource); } return false; } @@ -524,8 +524,8 @@ return null; } - public List getResources() { - return modelResources; + public synchronized List getResources() { + return new ArrayList(modelResources); } @@ -538,4 +538,4 @@ } return false; } -} \ No newline at end of file +}