Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2012-08-12 14:47:31 +0000
committerStephan Herrmann2012-08-12 14:47:31 +0000
commit78c656fd50edec1a381e0111e71ccffab68247b9 (patch)
tree1f6b505bf839e244189c8283fd23cad44089c592 /org.eclipse.jdt.core/model
parent1e43775b4d6a2716d8ba3cdc83ad8f6111a1107d (diff)
downloadorg.eclipse.objectteams-78c656fd50edec1a381e0111e71ccffab68247b9.tar.gz
org.eclipse.objectteams-78c656fd50edec1a381e0111e71ccffab68247b9.tar.xz
org.eclipse.objectteams-78c656fd50edec1a381e0111e71ccffab68247b9.zip
Prevent ConcurrentModificationError seen in the logs.
Diffstat (limited to 'org.eclipse.jdt.core/model')
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/internal/core/OTJavaElement.java18
1 files changed, 10 insertions, 8 deletions
diff --git a/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/internal/core/OTJavaElement.java b/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/internal/core/OTJavaElement.java
index f98ab684c..90553a3f3 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/internal/core/OTJavaElement.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/internal/core/OTJavaElement.java
@@ -101,19 +101,21 @@ public abstract class OTJavaElement extends Member implements IOTJavaElement
public void addChild(IOTJavaElement child)
{
if (child != null)
- {
- this.children.add(child);
- }
+ synchronized (this.children) {
+ this.children.add(child);
+ }
}
protected void compactChildren(IOTJavaElement child) {
// FIXME(SH): performance etc.
int count = 0;
- Iterator it = this.children.iterator();
- while (it.hasNext()) {
- if (it.next().equals(child)) {
- if (++count > 1)
- it.remove();
+ synchronized (this.children) {
+ Iterator it = this.children.iterator();
+ while (it.hasNext()) {
+ if (it.next().equals(child)) {
+ if (++count > 1)
+ it.remove();
+ }
}
}
}

Back to the top