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);
 		}
 	}