Commit 97020e0b by olly Committed by Oliver Woodman

CronetDataSource: Fix getContentLength logging

This is a minor cleanup. The main thing it fixes is that
the "Inconsistent headers" and "Unexpected Content-Range"
log messages were printing List<String> objects, rather
than the actual headers they are supposed to print.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=135378074
parent d95baa3e
...@@ -358,7 +358,7 @@ public class CronetDataSource extends UrlRequest.Callback implements HttpDataSou ...@@ -358,7 +358,7 @@ public class CronetDataSource extends UrlRequest.Callback implements HttpDataSou
contentLength = currentDataSpec.length; contentLength = currentDataSpec.length;
} else { } else {
// Check content length. // Check content length.
contentLength = getContentLength(info.getAllHeaders()); contentLength = getContentLength(info);
// If a specific length is requested and a specific length is returned but the 2 don't match // If a specific length is requested and a specific length is returned but the 2 don't match
// it's an error. // it's an error.
if (currentDataSpec.length != C.LENGTH_UNSET && contentLength != C.LENGTH_UNSET if (currentDataSpec.length != C.LENGTH_UNSET && contentLength != C.LENGTH_UNSET
...@@ -472,23 +472,25 @@ public class CronetDataSource extends UrlRequest.Callback implements HttpDataSou ...@@ -472,23 +472,25 @@ public class CronetDataSource extends UrlRequest.Callback implements HttpDataSou
return false; return false;
} }
private static long getContentLength(Map<String, List<String>> headers) { private static long getContentLength(UrlResponseInfo info) {
long contentLength = C.LENGTH_UNSET; long contentLength = C.LENGTH_UNSET;
List<String> contentLengthHeader = headers.get("Content-Length"); Map<String, List<String>> headers = info.getAllHeaders();
if (contentLengthHeader != null List<String> contentLengthHeaders = headers.get("Content-Length");
&& !contentLengthHeader.isEmpty() String contentLengthHeader = null;
&& !TextUtils.isEmpty(contentLengthHeader.get(0))) { if (contentLengthHeaders != null && !contentLengthHeaders.isEmpty()) {
try { contentLengthHeader = contentLengthHeaders.get(0);
contentLength = Long.parseLong(contentLengthHeader.get(0)); if (!TextUtils.isEmpty(contentLengthHeader)) {
} catch (NumberFormatException e) { try {
Log.e(TAG, "Unexpected Content-Length [" + contentLengthHeader + "]"); contentLength = Long.parseLong(contentLengthHeader);
} catch (NumberFormatException e) {
Log.e(TAG, "Unexpected Content-Length [" + contentLengthHeader + "]");
}
} }
} }
List<String> contentRangeHeader = headers.get("Content-Range"); List<String> contentRangeHeaders = headers.get("Content-Range");
if (contentRangeHeader != null if (contentRangeHeaders != null && !contentRangeHeaders.isEmpty()) {
&& !contentRangeHeader.isEmpty() String contentRangeHeader = contentRangeHeaders.get(0);
&& !TextUtils.isEmpty(contentRangeHeader.get(0))) { Matcher matcher = CONTENT_RANGE_HEADER_PATTERN.matcher(contentRangeHeader);
Matcher matcher = CONTENT_RANGE_HEADER_PATTERN.matcher(contentRangeHeader.get(0));
if (matcher.find()) { if (matcher.find()) {
try { try {
long contentLengthFromRange = long contentLengthFromRange =
......
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