From 36841d4f6f195a4839b5b9c84e02249784ca912b Mon Sep 17 00:00:00 2001 From: aquilescanta Date: Thu, 3 Jun 2021 15:15:39 +0100 Subject: [PATCH] Replace one of the ParserException constructors with factory method PiperOrigin-RevId: 377281961 --- .../android/exoplayer2/ParserException.java | 36 ++++++++++--------- .../android/exoplayer2/video/AvcConfig.java | 2 +- .../android/exoplayer2/video/HevcConfig.java | 2 +- .../upstream/DataSchemeDataSource.java | 3 +- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/ParserException.java b/library/common/src/main/java/com/google/android/exoplayer2/ParserException.java index 24dec7e9f1..9f1a9ca7a6 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/ParserException.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/ParserException.java @@ -22,6 +22,19 @@ import java.io.IOException; /** Thrown when an error occurs parsing media data and metadata. */ public class ParserException extends IOException { + /** + * Creates a new instance for which {@link #contentIsMalformed} is true and {@link #dataType} is + * {@link C#DATA_TYPE_UNKNOWN}. + * + * @param message See {@link #getMessage()}. + * @param cause See {@link #getCause()}. + * @return The created instance. + */ + public static ParserException createForMalformedDataOfUnknownType( + @Nullable String message, @Nullable Throwable cause) { + return new ParserException(message, cause, /* contentIsMalformed= */ true, C.DATA_TYPE_UNKNOWN); + } + /** * Creates a new instance for which {@link #contentIsMalformed} is true and {@link #dataType} is * {@link C#DATA_TYPE_MEDIA}. @@ -91,7 +104,11 @@ public class ParserException extends IOException { */ @Deprecated public ParserException() { - this(/* message= */ null, /* cause= */ null); + this( + /* message= */ null, + /* cause= */ null, + /* contentIsMalformed= */ true, + C.DATA_TYPE_UNKNOWN); } /** @@ -103,7 +120,7 @@ public class ParserException extends IOException { */ @Deprecated public ParserException(String message) { - this(message, /* cause= */ null); + this(message, /* cause= */ null, /* contentIsMalformed= */ true, C.DATA_TYPE_UNKNOWN); } /** @@ -115,20 +132,7 @@ public class ParserException extends IOException { */ @Deprecated public ParserException(Throwable cause) { - this(/* message= */ null, cause); - } - - /** - * Creates a new instance. - * - * @param message The detail message for the exception. - * @param cause The cause for the exception. - * @deprecated Use a factory method which initializes {@link #contentIsMalformed}, and {@link - * #dataType} instead. - */ - @Deprecated - public ParserException(@Nullable String message, @Nullable Throwable cause) { - this(message, cause, /* contentIsMalformed= */ true, C.DATA_TYPE_UNKNOWN); + this(/* message= */ null, cause, /* contentIsMalformed= */ true, C.DATA_TYPE_UNKNOWN); } private ParserException( diff --git a/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java b/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java index 94b29a83b6..a6c5577749 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java @@ -85,7 +85,7 @@ public final class AvcConfig { pixelWidthAspectRatio, codecs); } catch (ArrayIndexOutOfBoundsException e) { - throw new ParserException("Error parsing AVC config", e); + throw ParserException.createForMalformedContainer("Error parsing AVC config", e); } } diff --git a/library/common/src/main/java/com/google/android/exoplayer2/video/HevcConfig.java b/library/common/src/main/java/com/google/android/exoplayer2/video/HevcConfig.java index 2abc2f8644..567485ba92 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/video/HevcConfig.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/video/HevcConfig.java @@ -90,7 +90,7 @@ public final class HevcConfig { List initializationData = csdLength == 0 ? null : Collections.singletonList(buffer); return new HevcConfig(initializationData, lengthSizeMinusOne + 1, codecs); } catch (ArrayIndexOutOfBoundsException e) { - throw new ParserException("Error parsing HEVC config", e); + throw ParserException.createForMalformedContainer("Error parsing HEVC config", e); } } diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSchemeDataSource.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSchemeDataSource.java index 0d1166e8a2..c914517777 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSchemeDataSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DataSchemeDataSource.java @@ -60,7 +60,8 @@ public final class DataSchemeDataSource extends BaseDataSource { try { data = Base64.decode(dataString, /* flags= */ Base64.DEFAULT); } catch (IllegalArgumentException e) { - throw new ParserException("Error while parsing Base64 encoded string: " + dataString, e); + throw ParserException.createForMalformedDataOfUnknownType( + "Error while parsing Base64 encoded string: " + dataString, e); } } else { // TODO: Add support for other charsets.