diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java index be02faeba8..67cb095b8d 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java @@ -36,6 +36,7 @@ import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import java.lang.annotation.Documented; import java.lang.annotation.Retention; @@ -632,12 +633,12 @@ public class DefaultDrmSessionManager implements DrmSessionManager { // ResourceBusyException is only available at API 19, so on earlier versions we always // eagerly release regardless of the underlying error. if (!keepaliveSessions.isEmpty()) { - // Make a local copy, because sessions are removed from this.timingOutSessions during + // Make a local copy, because sessions are removed from this.keepaliveSessions during // release (via callback). - ImmutableList timingOutSessions = - ImmutableList.copyOf(this.keepaliveSessions); - for (DrmSession timingOutSession : timingOutSessions) { - timingOutSession.release(/* eventDispatcher= */ null); + ImmutableSet keepaliveSessions = + ImmutableSet.copyOf(this.keepaliveSessions); + for (DrmSession keepaliveSession : keepaliveSessions) { + keepaliveSession.release(/* eventDispatcher= */ null); } // Undo the acquisitions from createAndAcquireSession(). session.release(eventDispatcher);