diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index 03e323aa3..1ad4a9d0d 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -243,7 +243,7 @@ public class DownloadService extends Service { handler = new Handler(); newMediaFiles = Collections.synchronizedList(new ArrayList()); reportQueue = Collections.synchronizedList(new ArrayList()); - downloads = new ArrayList(); + downloads = Collections.synchronizedList(new ArrayList()); numberOfDownloads = new AtomicInteger(0); IntentFilter cancelDownloadReceiverFilter = new IntentFilter(); @@ -1246,7 +1246,10 @@ public class DownloadService extends Service { } public List getDownloads() { - return downloads; + // return a copy of downloads, but the copy doesn't need to be synchronized. + synchronized (downloads) { + return new ArrayList(downloads); + } } }