513930: ConcurrentModificationException in SynchronizeRelevantTasksJob
Change-Id: Ib77827f45549c64a0179165a568b7453a63d24d2
Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=513930
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/SynchronizeRelevantTasksJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/SynchronizeRelevantTasksJob.java
index bbb3c07..7786573 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/SynchronizeRelevantTasksJob.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/SynchronizeRelevantTasksJob.java
@@ -13,6 +13,7 @@
import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -127,14 +128,15 @@
}
private void addTodaysTasks(HashSet<ITask> relevantTasks) {
- Set<ITask> dueTasks = taskActivityManager.getScheduledTasks(TaskActivityUtil.getCurrentWeek().getToday());
- for (ITask dueTask : dueTasks) {
- if (dueTask.isCompleted()) {
- dueTasks.remove(dueTask);
+ Set<ITask> scheduledTasks = taskActivityManager.getScheduledTasks(TaskActivityUtil.getCurrentWeek().getToday());
+ for (Iterator<ITask> iterator = scheduledTasks.iterator(); iterator.hasNext();) {
+ ITask scheduledTask = iterator.next();
+ if (scheduledTask.isCompleted()) {
+ iterator.remove();
}
}
- if (dueTasks.size() < MAX_NUM_TASKS) {
- relevantTasks.addAll(dueTasks);
+ if (scheduledTasks.size() < MAX_NUM_TASKS) {
+ relevantTasks.addAll(scheduledTasks);
}
}