Revision: 3569
Author: [email protected]
Date: Fri May 28 08:08:23 2010
Log: Changed DBTreeModel back to using Iterators instead of for loops. This
change is necessary because concurrent modification exceptions might occur
when using for loops. Using Iterators solve that.
http://code.google.com/p/power-architect/source/detail?r=3569
Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java
Thu May 27 07:42:00 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/dbtree/DBTreeModel.java
Fri May 28 08:08:23 2010
@@ -24,6 +24,7 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -496,9 +497,10 @@
final TreeModelEvent ev =e;
Runnable notifier = new Runnable(){
public void run() {
- for (TreeModelListener listener :
treeModelListeners) {
- listener.treeNodesInserted(ev);
- }
+ Iterator<TreeModelListener> it =
treeModelListeners.iterator();
+ while (it.hasNext()) {
+ it.next().treeNodesInserted(ev);
+ }
}
};
// TODO FIXME XXX Replace this with an alternate method leads to nasty
behavior. There are 3 others too
@@ -511,8 +513,9 @@
final TreeModelEvent ev =e;
Runnable notifier = new Runnable(){
public void run() {
- for (TreeModelListener listener : treeModelListeners) {
- listener.treeNodesRemoved(ev);
+ Iterator<TreeModelListener> it =
treeModelListeners.iterator();
+ while (it.hasNext()) {
+ it.next().treeNodesRemoved(ev);
}
}
};
@@ -525,8 +528,9 @@
final TreeModelEvent ev =e;
Runnable notifier = new Runnable(){
public void run() {
- for (TreeModelListener listener : treeModelListeners) {
- listener.treeNodesChanged(ev);
+ Iterator<TreeModelListener> it =
treeModelListeners.iterator();
+ while (it.hasNext()) {
+ it.next().treeNodesChanged(ev);
}
}
};
@@ -541,8 +545,9 @@
final TreeModelEvent ev =e;
Runnable notifier = new Runnable(){
public void run() {
- for (TreeModelListener listener : treeModelListeners) {
- listener.treeStructureChanged(ev);
+ Iterator<TreeModelListener> it =
treeModelListeners.iterator();
+ while (it.hasNext()) {
+ it.next().treeStructureChanged(ev);
}
}
};