Index: tasklist/core/src/org/netbeans/modules/tasklist/core/TaskChildren.java =================================================================== RCS file: /cvs/tasklist/core/src/org/netbeans/modules/tasklist/core/TaskChildren.java,v retrieving revision 1.5 diff -u -r1.5 TaskChildren.java --- tasklist/core/src/org/netbeans/modules/tasklist/core/TaskChildren.java 23 Nov 2003 19:13:10 -0000 1.5 +++ tasklist/core/src/org/netbeans/modules/tasklist/core/TaskChildren.java 6 Dec 2003 01:14:31 -0000 @@ -14,12 +14,14 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import org.openide.nodes.Node; import org.openide.nodes.Children; +import org.openide.util.Mutex; /** Children object for the Task list; used to track @@ -38,20 +40,26 @@ private void refreshKeys() { List subtasks = parent.getSubtasks(); + final Collection myKeys; if (subtasks == null) { - setKeys(Collections.EMPTY_SET); - return; + myKeys = Collections.EMPTY_SET; + } else { + myKeys = new LinkedList(); + ListIterator it = subtasks.listIterator(); + while (it.hasNext()) { + Task item = (Task)it.next(); + myKeys.add(item); + } + // XXX couldn't I just do + // setKeys(parent.getSubtasks()) ?? Check if this method + // clones the list... if it doesn't I can do it } - myKeys = new LinkedList(); - ListIterator it = subtasks.listIterator(); - while (it.hasNext()) { - Task item = (Task)it.next(); - myKeys.add(item); - } - // XXX couldn't I just do - // setKeys(parent.getSubtasks()) ?? Check if this method - // clones the list... if it doesn't I can do it - setKeys(myKeys); + // #37802: TreeTableView apparently chokes on non-EQ children updates. + Mutex.EVENT.readAccess(new Runnable() { + public void run() { + setKeys(myKeys); + } + }); } /** Called when the parent node is expanded; now we need