From 7020fff332834637e0801f2d4908a219475f027b Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 10 Jan 2019 09:40:58 -0600 Subject: [PATCH] Fix concurrent modification exception --- .../org/tasks/scheduling/RefreshScheduler.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/tasks/scheduling/RefreshScheduler.java b/app/src/main/java/org/tasks/scheduling/RefreshScheduler.java index c56e48aac..2188e3113 100644 --- a/app/src/main/java/org/tasks/scheduling/RefreshScheduler.java +++ b/app/src/main/java/org/tasks/scheduling/RefreshScheduler.java @@ -1,14 +1,19 @@ package org.tasks.scheduling; -import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE; -import static org.tasks.time.DateTimeUtils.currentTimeMillis; - +import com.google.common.collect.ImmutableList; import com.todoroo.astrid.data.Task; + +import org.tasks.injection.ApplicationScope; +import org.tasks.jobs.WorkManager; + +import java.util.List; import java.util.SortedSet; import java.util.TreeSet; + import javax.inject.Inject; -import org.tasks.injection.ApplicationScope; -import org.tasks.jobs.WorkManager; + +import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE; +import static org.tasks.time.DateTimeUtils.currentTimeMillis; @ApplicationScope public class RefreshScheduler { @@ -45,7 +50,7 @@ public class RefreshScheduler { } public synchronized void scheduleNext() { - SortedSet lapsed = jobs.headSet(currentTimeMillis() + 1); + List lapsed = ImmutableList.copyOf(jobs.headSet(currentTimeMillis() + 1)); jobs.removeAll(lapsed); if (!jobs.isEmpty()) { workManager.scheduleRefresh(jobs.first());