From 174d99481a29e854e9cbf2d99c203d9af454f6f4 Mon Sep 17 00:00:00 2001 From: tonihei Date: Fri, 28 Jan 2022 10:01:15 +0000 Subject: [PATCH] Remove opt-out for suppressing wrong thread usage error. Enforcing the correct thread usage has been enabled since 2.13.0. Opting-out of this enforement is dangerous as it can hide very hard to debug bugs. PiperOrigin-RevId: 424815808 --- RELEASENOTES.md | 2 ++ docs/hello-world.md | 6 +----- .../com/google/android/exoplayer2/ExoPlayer.java | 13 ------------- .../google/android/exoplayer2/SimpleExoPlayer.java | 4 +--- .../android/exoplayer2/testutil/StubExoPlayer.java | 6 ------ 5 files changed, 4 insertions(+), 27 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fc3a38e899..c13cdeeac7 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -148,6 +148,8 @@ `MediaItem.LiveConfiguration.Builder#setTargetOffsetMs` to override the manifest, or `DashMediaSource#setFallbackTargetLiveOffsetMs` to provide a fallback value. + * Remove `(Simple)ExoPlayer.setThrowsWhenUsingWrongThread`. Opting out of + the thread enforcement is no longer possible. ### 2.16.1 (2021-11-18) diff --git a/docs/hello-world.md b/docs/hello-world.md index 5b71f150ff..af7c58ceb9 100644 --- a/docs/hello-world.md +++ b/docs/hello-world.md @@ -119,11 +119,7 @@ which the player must be accessed can be queried using If you see `IllegalStateException` being thrown with the message "Player is accessed on the wrong thread", then some code in your app is accessing an `ExoPlayer` instance on the wrong thread (the exception's stack trace shows you -where). You can temporarily opt out from these exceptions being thrown by -calling `ExoPlayer.setThrowsWhenUsingWrongThread(false)`, in which case the -issue will be logged as a warning instead. Using this opt out is not safe and -may result in unexpected or obscure errors. It will be removed in ExoPlayer -2.16. +where). {:.info} For more information about ExoPlayer's threading model, see the diff --git a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java index 53b196fbb9..9a9a3fa1e2 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/ExoPlayer.java @@ -1456,19 +1456,6 @@ public interface ExoPlayer extends Player { */ void setPriorityTaskManager(@Nullable PriorityTaskManager priorityTaskManager); - /** - * Sets whether the player should throw an {@link IllegalStateException} when methods are called - * from a thread other than the one associated with {@link #getApplicationLooper()}. - * - *

The default is {@code true} and this method will be removed in the future. - * - * @param throwsWhenUsingWrongThread Whether to throw when methods are called from a wrong thread. - * @deprecated Disabling the enforcement can result in hard-to-detect bugs. Do not use this method - * except to ease the transition while wrong thread access problems are fixed. - */ - @Deprecated - void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread); - /** * Sets whether audio offload scheduling is enabled. If enabled, ExoPlayer's main loop will run as * rarely as possible when playing an audio stream using audio offload. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java index 519904bf2e..ed5d0ca1eb 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/SimpleExoPlayer.java @@ -1541,9 +1541,7 @@ public class SimpleExoPlayer extends BasePlayer streamVolumeManager.setMuted(muted); } - @Deprecated - @Override - public void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { + /* package */ void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { this.throwsWhenUsingWrongThread = throwsWhenUsingWrongThread; } diff --git a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java index 136327739f..19c833b42b 100644 --- a/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/StubExoPlayer.java @@ -357,12 +357,6 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer { throw new UnsupportedOperationException(); } - @Deprecated - @Override - public void setThrowsWhenUsingWrongThread(boolean throwsWhenUsingWrongThread) { - throw new UnsupportedOperationException(); - } - @Override public void experimentalSetOffloadSchedulingEnabled(boolean offloadSchedulingEnabled) { throw new UnsupportedOperationException();