From 6d04b998f9d59442b1cfaa09cf6ef82c225a04ef Mon Sep 17 00:00:00 2001 From: claincly Date: Thu, 27 May 2021 13:44:35 +0100 Subject: [PATCH] Use more factory method to create ParserException. ParserException's constructor methods are deprecated. #minor-release PiperOrigin-RevId: 376150191 --- .../google/android/exoplayer2/ParserException.java | 14 ++++++++++++++ .../source/rtsp/RtspAuthenticationInfo.java | 5 +++-- .../android/exoplayer2/source/rtsp/RtspClient.java | 3 ++- .../exoplayer2/source/rtsp/RtspMessageUtil.java | 3 ++- 4 files changed, 21 insertions(+), 4 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 ce181b8fbf..24dec7e9f1 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 @@ -49,6 +49,20 @@ public class ParserException extends IOException { message, cause, /* contentIsMalformed= */ true, C.DATA_TYPE_MANIFEST); } + /** + * Creates a new instance for which {@link #contentIsMalformed} is false and {@link #dataType} is + * {@link C#DATA_TYPE_MANIFEST}. + * + * @param message See {@link #getMessage()}. + * @param cause See {@link #getCause()}. + * @return The created instance. + */ + public static ParserException createForManifestWithUnsupportedFeature( + @Nullable String message, @Nullable Throwable cause) { + return new ParserException( + message, cause, /* contentIsMalformed= */ false, C.DATA_TYPE_MANIFEST); + } + /** * Creates a new instance for which {@link #contentIsMalformed} is false and {@link #dataType} is * {@link C#DATA_TYPE_MEDIA}. diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java index 82d15e7a7c..3b591aaa9b 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspAuthenticationInfo.java @@ -95,7 +95,8 @@ import java.security.NoSuchAlgorithmException; case DIGEST: return getDigestAuthorizationHeaderValue(authUserInfo, uri, requestMethod); default: - throw new ParserException(new UnsupportedOperationException()); + throw ParserException.createForManifestWithUnsupportedFeature( + /* message= */ null, new UnsupportedOperationException()); } } @@ -136,7 +137,7 @@ import java.security.NoSuchAlgorithmException; DIGEST_FORMAT_WITH_OPAQUE, authUserInfo.username, realm, nonce, uri, response, opaque); } } catch (NoSuchAlgorithmException e) { - throw new ParserException(e); + throw ParserException.createForManifestWithUnsupportedFeature(/* message= */ null, e); } } } diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java index 042b578386..0d8e902ed6 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspClient.java @@ -421,7 +421,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @Nullable String wwwAuthenticateHeader = response.headers.get(RtspHeaders.WWW_AUTHENTICATE); if (wwwAuthenticateHeader == null) { - throw new ParserException("Missing WWW-Authenticate header in a 401 response."); + throw ParserException.createForMalformedManifest( + "Missing WWW-Authenticate header in a 401 response.", /* cause= */ null); } rtspAuthenticationInfo = RtspMessageUtil.parseWwwAuthenticateHeader(wwwAuthenticateHeader); diff --git a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageUtil.java b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageUtil.java index a4177a2e5d..0127f52f66 100644 --- a/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageUtil.java +++ b/library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMessageUtil.java @@ -426,7 +426,8 @@ import java.util.regex.Pattern; /* nonce= */ "", /* opaque= */ ""); } - throw new ParserException("Invalid WWW-Authenticate header " + headerValue); + throw ParserException.createForMalformedManifest( + "Invalid WWW-Authenticate header " + headerValue, /* cause= */ null); } private static String getRtspStatusReasonPhrase(int statusCode) {