Avoid terminating MultiRangeHttpFetcher twice. am: 7424199459
am: a95dfdb274
Change-Id: Iaeb683b9cad6dc69fde160e9a18ffdd0f6c2aa79
diff --git a/common/multi_range_http_fetcher.cc b/common/multi_range_http_fetcher.cc
index 1189fde..dc4b7c1 100644
--- a/common/multi_range_http_fetcher.cc
+++ b/common/multi_range_http_fetcher.cc
@@ -101,6 +101,12 @@
LOG_IF(WARNING, next_size <= 0) << "Asked to write length <= 0";
if (delegate_) {
delegate_->ReceivedBytes(this, bytes, next_size);
+ // If the transfer was already terminated by |delegate_|, return immediately
+ // to avoid calling TerminateTransfer() again.
+ if (!base_fetcher_active_) {
+ LOG(INFO) << "Delegate has terminated the transfer.";
+ return;
+ }
}
bytes_received_this_range_ += length;
if (range.HasLength() && bytes_received_this_range_ >= range.length()) {