From c2ac33af1b7995ed0b5e7c292eb19bc94242b5f2 Mon Sep 17 00:00:00 2001 From: jaewan Date: Fri, 14 Aug 2020 09:57:23 +0100 Subject: [PATCH] Clean up PlayerWrapper exception log PlayerWrapper throws Exception if getters is called in the STATE_IDLE. In that case, log may print 50+ lines of stack traces. It's verbose and can be considered as serious issue. This CL include folloing changes - Change to use ExoPlayer's log class - Adjust log level, because it would be consumed by caller - Leave log when the debug flag is turned on. Another CL will remove exceptions between PlayerWrapper and and SessionPlayerConnector, not to use Exception for ordinary control flow as the Effective Java suggests. PiperOrigin-RevId: 326614559 --- .../exoplayer2/ext/media2/SessionPlayerConnector.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java index 41a696932a..99a5f1bcfc 100644 --- a/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java +++ b/extensions/media2/src/main/java/com/google/android/exoplayer2/ext/media2/SessionPlayerConnector.java @@ -16,7 +16,6 @@ package com.google.android.exoplayer2.ext.media2; -import android.util.Log; import androidx.annotation.FloatRange; import androidx.annotation.GuardedBy; import androidx.annotation.IntRange; @@ -33,6 +32,7 @@ import com.google.android.exoplayer2.DefaultControlDispatcher; import com.google.android.exoplayer2.ExoPlayerLibraryInfo; import com.google.android.exoplayer2.Player; import com.google.android.exoplayer2.util.Assertions; +import com.google.android.exoplayer2.util.Log; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import java.util.HashMap; @@ -73,6 +73,7 @@ public final class SessionPlayerConnector extends SessionPlayer { } private static final String TAG = "SessionPlayerConnector"; + private static final boolean DEBUG = false; private static final int END_OF_PLAYLIST = -1; private final Object stateLock = new Object(); @@ -636,9 +637,10 @@ public final class SessionPlayerConnector extends SessionPlayer { // We always wait for player calls to return. wasInterrupted = true; } catch (ExecutionException e) { - @Nullable Throwable cause = e.getCause(); - Log.e(TAG, "Internal player error", new RuntimeException(cause)); - throw new IllegalStateException(cause); + if (DEBUG) { + Log.d(TAG, "Internal player error", e); + } + throw new IllegalStateException(e.getCause()); } } } finally {