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);
                                }
                        }
                };

Reply via email to