Fix concurrent modification exception

pull/795/head
Alex Baker 6 years ago
parent 84cbec5484
commit 7020fff332

@ -1,14 +1,19 @@
package org.tasks.scheduling; package org.tasks.scheduling;
import static com.todoroo.andlib.utility.DateUtilities.ONE_MINUTE; import com.google.common.collect.ImmutableList;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
import com.todoroo.astrid.data.Task; 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.SortedSet;
import java.util.TreeSet; import java.util.TreeSet;
import javax.inject.Inject; 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 @ApplicationScope
public class RefreshScheduler { public class RefreshScheduler {
@ -45,7 +50,7 @@ public class RefreshScheduler {
} }
public synchronized void scheduleNext() { public synchronized void scheduleNext() {
SortedSet<Long> lapsed = jobs.headSet(currentTimeMillis() + 1); List<Long> lapsed = ImmutableList.copyOf(jobs.headSet(currentTimeMillis() + 1));
jobs.removeAll(lapsed); jobs.removeAll(lapsed);
if (!jobs.isEmpty()) { if (!jobs.isEmpty()) {
workManager.scheduleRefresh(jobs.first()); workManager.scheduleRefresh(jobs.first());

Loading…
Cancel
Save