Commit d4975415 by aquilescanta Committed by bachinger

Remove calls to initCause

In favor of setting the cause in the constructor, which allows
some code simplifications.

PiperOrigin-RevId: 387062636
parent f53f44c9
......@@ -713,18 +713,18 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
responseBody = Util.EMPTY_BYTE_ARRAY;
}
InvalidResponseCodeException exception =
new InvalidResponseCodeException(
responseCode,
responseInfo.getHttpStatusText(),
responseHeaders,
dataSpec,
responseBody);
if (responseCode == 416) {
exception.initCause(
new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE));
}
throw exception;
@Nullable
IOException cause =
responseCode == 416
? new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE)
: null;
throw new InvalidResponseCodeException(
responseCode,
responseInfo.getHttpStatusText(),
cause,
responseHeaders,
dataSpec,
responseBody);
}
// Check for a valid content type.
......@@ -1188,6 +1188,7 @@ public class CronetDataSource extends BaseDataSource implements HttpDataSource {
new InvalidResponseCodeException(
responseCode,
info.getHttpStatusText(),
/* cause= */ null,
info.getAllHeaders(),
dataSpec,
/* responseBody= */ Util.EMPTY_BYTE_ARRAY);
......
......@@ -324,14 +324,13 @@ public class OkHttpDataSource extends BaseDataSource implements HttpDataSource {
}
Map<String, List<String>> headers = response.headers().toMultimap();
closeConnectionQuietly();
InvalidResponseCodeException exception =
new InvalidResponseCodeException(
responseCode, response.message(), headers, dataSpec, errorResponseBody);
if (responseCode == 416) {
exception.initCause(
new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE));
}
throw exception;
@Nullable
IOException cause =
responseCode == 416
? new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE)
: null;
throw new InvalidResponseCodeException(
responseCode, response.message(), cause, headers, dataSpec, errorResponseBody);
}
// Check for a valid content type.
......
......@@ -76,7 +76,7 @@ public class DataSourceException extends IOException {
* PlaybackException.ErrorCode}.
*/
public DataSourceException(
String message, Throwable cause, @PlaybackException.ErrorCode int reason) {
String message, @Nullable Throwable cause, @PlaybackException.ErrorCode int reason) {
super(message, cause);
this.reason = reason;
}
......
......@@ -400,14 +400,13 @@ public class DefaultHttpDataSource extends BaseDataSource implements HttpDataSou
errorResponseBody = Util.EMPTY_BYTE_ARRAY;
}
closeConnectionQuietly();
InvalidResponseCodeException exception =
new InvalidResponseCodeException(
responseCode, responseMessage, headers, dataSpec, errorResponseBody);
if (responseCode == 416) {
exception.initCause(
new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE));
}
throw exception;
@Nullable
IOException cause =
responseCode == 416
? new DataSourceException(PlaybackException.ERROR_CODE_IO_READ_POSITION_OUT_OF_RANGE)
: null;
throw new InvalidResponseCodeException(
responseCode, responseMessage, cause, headers, dataSpec, errorResponseBody);
}
// Check for a valid content type.
......
......@@ -317,7 +317,7 @@ public interface HttpDataSource extends DataSource {
*/
public HttpDataSourceException(
String message,
IOException cause,
@Nullable IOException cause,
DataSpec dataSpec,
@PlaybackException.ErrorCode int errorCode,
@Type int type) {
......@@ -386,7 +386,8 @@ public interface HttpDataSource extends DataSource {
public final byte[] responseBody;
/**
* @deprecated Use {@link #InvalidResponseCodeException(int, String, Map, DataSpec, byte[])}.
* @deprecated Use {@link #InvalidResponseCodeException(int, String, IOException, Map, DataSpec,
* byte[])}.
*/
@Deprecated
public InvalidResponseCodeException(
......@@ -394,13 +395,15 @@ public interface HttpDataSource extends DataSource {
this(
responseCode,
/* responseMessage= */ null,
/* cause= */ null,
headerFields,
dataSpec,
/* responseBody= */ Util.EMPTY_BYTE_ARRAY);
}
/**
* @deprecated Use {@link #InvalidResponseCodeException(int, String, Map, DataSpec, byte[])}.
* @deprecated Use {@link #InvalidResponseCodeException(int, String, IOException, Map, DataSpec,
* byte[])}.
*/
@Deprecated
public InvalidResponseCodeException(
......@@ -411,6 +414,7 @@ public interface HttpDataSource extends DataSource {
this(
responseCode,
responseMessage,
/* cause= */ null,
headerFields,
dataSpec,
/* responseBody= */ Util.EMPTY_BYTE_ARRAY);
......@@ -419,11 +423,13 @@ public interface HttpDataSource extends DataSource {
public InvalidResponseCodeException(
int responseCode,
@Nullable String responseMessage,
@Nullable IOException cause,
Map<String, List<String>> headerFields,
DataSpec dataSpec,
byte[] responseBody) {
super(
"Response code: " + responseCode,
cause,
dataSpec,
PlaybackException.ERROR_CODE_IO_BAD_HTTP_STATUS,
TYPE_OPEN);
......
......@@ -296,6 +296,7 @@ public final class DefaultLoadErrorHandlingPolicyTest {
return new InvalidResponseCodeException(
statusCode,
message,
/* cause= */ null,
Collections.emptyMap(),
new DataSpec(Uri.EMPTY),
/* responseBody= */ Util.EMPTY_BYTE_ARRAY);
......
......@@ -339,6 +339,7 @@ public class DefaultDashChunkSourceTest {
new HttpDataSource.InvalidResponseCodeException(
httpResponseCode,
/* responseMessage= */ null,
/* cause= */ null,
ImmutableMap.of(),
dataSpec,
new byte[0]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment