From d1df41a39e0950a18b8c8b01f6094f926f3c823a Mon Sep 17 00:00:00 2001 From: tonihei Date: Mon, 17 Sep 2018 01:55:42 -0700 Subject: [PATCH] Fix window index comparison. To check the validity of a window index it needs to be compared with a greater or equal sign to the window count. Issue:#4822 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=213234403 --- RELEASENOTES.md | 2 ++ .../java/com/google/android/exoplayer2/ext/cast/CastPlayer.java | 2 +- .../main/java/com/google/android/exoplayer2/ExoPlayerImpl.java | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3c611be784..e187a0fe02 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -133,6 +133,8 @@ ([#4774](https://github.com/google/ExoPlayer/issues/4774)). * Fix issue with audio discontinuities at period transitions, e.g. when looping ([#3829](https://github.com/google/ExoPlayer/issues/3829)). +* Fix issue where `player.getCurrentTag()` throws an `IndexOutOfBoundsException` + ([#4822](https://github.com/google/ExoPlayer/issues/4822)). * IMA extension: * Refine the previous fix for empty ad groups to avoid discarding ad breaks unnecessarily ([#4030](https://github.com/google/ExoPlayer/issues/4030)), diff --git a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java index 65ae097452..3c91b7ad4d 100644 --- a/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java +++ b/extensions/cast/src/main/java/com/google/android/exoplayer2/ext/cast/CastPlayer.java @@ -495,7 +495,7 @@ public final class CastPlayer implements Player { @Override public @Nullable Object getCurrentTag() { int windowIndex = getCurrentWindowIndex(); - return windowIndex > currentTimeline.getWindowCount() + return windowIndex >= currentTimeline.getWindowCount() ? null : currentTimeline.getWindow(windowIndex, window, /* setTag= */ true).tag; } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java index 06c95971f6..b7b9afde56 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayerImpl.java @@ -380,7 +380,7 @@ import java.util.concurrent.CopyOnWriteArraySet; @Override public @Nullable Object getCurrentTag() { int windowIndex = getCurrentWindowIndex(); - return windowIndex > playbackInfo.timeline.getWindowCount() + return windowIndex >= playbackInfo.timeline.getWindowCount() ? null : playbackInfo.timeline.getWindow(windowIndex, window, /* setTag= */ true).tag; }