Index: core/src/org/netbeans/modules/tasklist/core/TaskList.java =================================================================== RCS file: /cvs/tasklist/core/src/org/netbeans/modules/tasklist/core/TaskList.java,v retrieving revision 1.35 diff -u -r1.35 TaskList.java --- core/src/org/netbeans/modules/tasklist/core/TaskList.java 29 Mar 2004 13:12:23 -0000 1.35 +++ core/src/org/netbeans/modules/tasklist/core/TaskList.java 9 Apr 2004 12:02:33 -0000 @@ -257,7 +257,7 @@ /** Fire TaskListener.structureChanged */ protected void fireStructureChanged(Task task) { - TaskListener[] taskListeners; + TaskListener[] taskListeners; // some listeners are self deregistering on this event causing index exception synchronized (listeners) { taskListeners = new TaskListener[listeners.size()]; taskListeners = (TaskListener[]) listeners.toArray(taskListeners); @@ -269,13 +269,15 @@ /** Fire TaskListener.removedTask */ protected void fireRemoved(Task pt, Task task) { + TaskListener[] taskListeners; // some listeners are self deregistering on this event causing index exception synchronized (listeners) { - int n = listeners.size(); - for (int i = 0; i < n; i++) { - TaskListener tl = (TaskListener) listeners.get(i); - tl.removedTask(pt, task); - } + taskListeners = new TaskListener[listeners.size()]; + taskListeners = (TaskListener[]) listeners.toArray(taskListeners); } + for (int i = 0; i < taskListeners.length; i++) { + taskListeners[i].removedTask(pt, task); + } + } /**