From 5211ff0dc1a80d948d220521c8f0327067a78467 Mon Sep 17 00:00:00 2001 From: ibaker Date: Thu, 21 Dec 2023 09:04:57 -0800 Subject: [PATCH] Only append non-null exception messages in `UnexpectedLoaderException` The previous code led me to misread this stack trace as a null pointer exception, but it's really an index out of bounds exception: ``` Caused by: androidx.media3.exoplayer.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalArgumentException: null at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:435) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at java.lang.Thread.run(Thread.java:1012) Caused by: java.lang.IllegalArgumentException at androidx.media3.common.util.Assertions.checkArgument(Assertions.java:40) at androidx.media3.common.util.ParsableByteArray.setPosition(ParsableByteArray.java:164) at androidx.media3.extractor.text.cea.Cea608Parser.parse(Cea608Parser.java:440) ``` PiperOrigin-RevId: 592876546 --- .../java/androidx/media3/exoplayer/upstream/Loader.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/Loader.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/Loader.java index 2b9c45259d..a8147fecb4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/Loader.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/upstream/Loader.java @@ -47,7 +47,11 @@ public final class Loader implements LoaderErrorThrower { public static final class UnexpectedLoaderException extends IOException { public UnexpectedLoaderException(Throwable cause) { - super("Unexpected " + cause.getClass().getSimpleName() + ": " + cause.getMessage(), cause); + super( + "Unexpected " + cause.getClass().getSimpleName() + cause.getMessage() != null + ? ": " + cause.getMessage() + : "", + cause); } }