Community
Participate
Working Groups
Listeners API, such as ITaskListChangeListener and ITaskActivityListener, should allow to pass multiple events in one call. So, actions on multple elements in Task List view, like delete, mark read, shedule..., etc would be actually usable.
Eugene, do you want to supply a patch for this, minimally adding the api so that we can improve implementation later?
(In reply to comment #1) > Eugene, do you want to supply a patch for this, minimally adding the api so > that we can improve implementation later? I think that impact of such change is to high for making it using patch.
(In reply to comment #2) > I think that impact of such change is to high for making it using patch. Agreed. There is no critical driver for this so lowering priority, but let's still consider it for RC0.
(In reply to comment #3) > Agreed. There is no critical driver for this so lowering priority, but let's > still consider it for RC0. I just meant that it would be easier such refactoring for someone with full commit access.
Done. Changes are now entirely handled by: ITaskListChangeListener.containersChanged(Set<TaskContainerDelta> containers); I have updated some of the client code to batch updates when necessary. This has changed a lot in terms of Task List refresh, and we still have some related failing tests to addres.
Created attachment 71260 [details] mylar/context/zip
I get multiple errors similar to this one in the log when passing null to notifyContainersUpdated(): java.lang.NullPointerException at org.eclipse.mylyn.tasks.ui.TaskListManager$2.containersChanged(TaskListManager.java:212) at org.eclipse.mylyn.tasks.core.TaskList.notifyContainersUpdated(TaskList.java:618) at org.eclipse.mylyn.tasks.ui.SynchronizeQueryJob.run(SynchronizeQueryJob.java:154) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Possible also related to this change: java.util.NoSuchElementException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:844) at java.util.HashMap$KeyIterator.next(HashMap.java:877) at org.eclipse.mylyn.tasks.core.DelegatingTaskExternalizer.createTaskElement(DelegatingTaskExternalizer.java:170) at org.eclipse.mylyn.internal.tasks.ui.util.TaskListWriter.createTaskElement(TaskListWriter.java:176) at org.eclipse.mylyn.internal.tasks.ui.util.TaskListWriter.writeTaskList(TaskListWriter.java:147) at org.eclipse.mylyn.internal.tasks.ui.util.TaskListSaveManager.internalSaveTaskList(TaskListSaveManager.java:129) at org.eclipse.mylyn.internal.tasks.ui.util.TaskListSaveManager.access$0(TaskListSaveManager.java:127) at org.eclipse.mylyn.internal.tasks.ui.util.TaskListSaveManager$TaskListSaverJob.run(TaskListSaveManager.java:275) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Fixing now...
Comment#7 problem fixed. We might still have a problem related to comment#8.
java.lang.NullPointerException at org.eclipse.mylyn.tasks.ui.editors.AbstractTaskEditor$2.containersChanged(AbstractTaskEditor.java:294) at org.eclipse.mylyn.tasks.core.TaskList.notifyContainersUpdated(TaskList.java:623) at org.eclipse.mylyn.tasks.ui.SynchronizeQueryJob.run(SynchronizeQueryJob.java:154) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) java.lang.NullPointerException at org.eclipse.mylyn.internal.tasks.ui.editors.TaskPlanningEditor$1.containersChanged(TaskPlanningEditor.java:139) at org.eclipse.mylyn.tasks.core.TaskList.notifyContainersUpdated(TaskList.java:623) at org.eclipse.mylyn.tasks.ui.SynchronizeQueryJob.run(SynchronizeQueryJob.java:154) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)