From 15a59d93eef2cc3afae2555da65e92a30609dda0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emanuele=20Tid=C3=B3?= Date: Wed, 30 Dec 2020 16:57:50 +0000 Subject: [PATCH] throw exception improved if responseCode and responseMessage ara available always throws an InvalidResponseCodeException instead of HttpDataSourceException, so in onPlayerError method the http status code and message can be used to decide what will be the next step. --- .../android/exoplayer2/ext/okhttp/OkHttpDataSource.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/okhttp/src/main/java/com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.java b/extensions/okhttp/src/main/java/com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.java index 92bf8281f5..97426a48d2 100644 --- a/extensions/okhttp/src/main/java/com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.java +++ b/extensions/okhttp/src/main/java/com/google/android/exoplayer2/ext/okhttp/OkHttpDataSource.java @@ -304,14 +304,14 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource { // Check for a valid response code. if (!response.isSuccessful()) { + Map> headers = response.headers().toMultimap(); byte[] errorResponseBody; try { errorResponseBody = Util.toByteArray(Assertions.checkNotNull(responseByteStream)); } catch (IOException e) { - throw new HttpDataSourceException( - "Error reading non-2xx response body", e, dataSpec, HttpDataSourceException.TYPE_OPEN); + throw new InvalidResponseCodeException( + responseCode, response.message(), headers, dataSpec, null); } - Map> headers = response.headers().toMultimap(); closeConnectionQuietly(); InvalidResponseCodeException exception = new InvalidResponseCodeException(