diff --git a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java index bca328f5e1..cc124489ec 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadManager.java @@ -601,8 +601,9 @@ public final class DownloadManager { fileIOHandler.post( () -> { DownloadState[] loadedStates; + DownloadStateCursor cursor = null; try { - DownloadStateCursor cursor = + cursor = downloadIndex.getDownloadStates( STATE_QUEUED, STATE_STOPPED, @@ -618,6 +619,10 @@ public final class DownloadManager { } catch (Throwable e) { Log.e(TAG, "Download state loading failed.", e); loadedStates = new DownloadState[0]; + } finally { + if (cursor != null) { + cursor.close(); + } } final DownloadState[] states = loadedStates; handler.post(