Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3847)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java

Issue 2164423002: Fix a ConcurrentModificationException issue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
index 4f962085b7b95e6eed148bfd67c32894673a8be8..5900fb2dbbfb29fb71e0139e8baffa2548bec868 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
@@ -43,6 +43,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -640,7 +641,11 @@ public class DownloadManagerService extends BroadcastReceiver implements
mIsUIUpdateScheduled = true;
final List<DownloadProgress> progressToUpdate = new ArrayList<DownloadProgress>();
- for (DownloadProgress progress : mDownloadProgressMap.values()) {
+ Iterator<Map.Entry<String, DownloadProgress>> iter =
+ mDownloadProgressMap.entrySet().iterator();
+ while (iter.hasNext()) {
+ Map.Entry<String, DownloadProgress> entry = iter.next();
+ DownloadProgress progress = entry.getValue();
if (progress.mIsUpdated) {
progressToUpdate.add(new DownloadProgress(progress));
progress.mIsUpdated = false;
@@ -650,7 +655,7 @@ public class DownloadManagerService extends BroadcastReceiver implements
|| progress.mDownloadItem.getDownloadInfo().isPaused())
&& (progress.mDownloadStatus != DOWNLOAD_STATUS_INTERRUPTED
|| !progress.mIsAutoResumable)) {
- mDownloadProgressMap.remove(progress.mDownloadItem.getId());
+ iter.remove();
}
}
if (progressToUpdate.isEmpty()) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698