This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 41883
Collapse All | Expand All

(-)core/src/org/netbeans/modules/tasklist/core/TaskList.java (-6 / +8 lines)
Lines 257-263 Link Here
257
257
258
    /** Fire TaskListener.structureChanged */
258
    /** Fire TaskListener.structureChanged */
259
    protected void fireStructureChanged(Task task) {
259
    protected void fireStructureChanged(Task task) {
260
        TaskListener[] taskListeners;
260
        TaskListener[] taskListeners; // some listeners are self deregistering on this event causing index exception
261
        synchronized (listeners) {
261
        synchronized (listeners) {
262
            taskListeners = new TaskListener[listeners.size()];
262
            taskListeners = new TaskListener[listeners.size()];
263
            taskListeners = (TaskListener[]) listeners.toArray(taskListeners);
263
            taskListeners = (TaskListener[]) listeners.toArray(taskListeners);
Lines 269-281 Link Here
269
269
270
    /** Fire TaskListener.removedTask */
270
    /** Fire TaskListener.removedTask */
271
    protected void fireRemoved(Task pt, Task task) {
271
    protected void fireRemoved(Task pt, Task task) {
272
        TaskListener[] taskListeners;  // some listeners are self deregistering on this event causing index exception
272
        synchronized (listeners) {
273
        synchronized (listeners) {
273
            int n = listeners.size();
274
            taskListeners = new TaskListener[listeners.size()];
274
            for (int i = 0; i < n; i++) {
275
            taskListeners = (TaskListener[]) listeners.toArray(taskListeners);
275
                TaskListener tl = (TaskListener) listeners.get(i);
276
                tl.removedTask(pt, task);
277
            }
278
        }
276
        }
277
        for (int i = 0; i < taskListeners.length; i++) {
278
            taskListeners[i].removedTask(pt, task);
279
        }
280
279
    }
281
    }
280
282
281
    /** 
283
    /** 

Return to bug 41883