summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2015-06-03 11:36:25 +0200
committerMartin Fietz <Martin.Fietz@gmail.com>2015-06-03 11:41:25 +0200
commit6a83057e28a1efc060016ef146b2b74b8c14fca2 (patch)
tree407959025f6e622ca6eba100220df91fa03444da /core/src/main
parentbb3f7255a97dab4fe9f24141bd63beed2d2341dc (diff)
downloadAntennaPod-6a83057e28a1efc060016ef146b2b74b8c14fca2.zip
Fixes "gzip finished without exhausting source" error
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java21
1 files changed, 14 insertions, 7 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
index ac0fe8036..61c922719 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/HttpDownloader.java
@@ -188,13 +188,17 @@ public class HttpDownloader extends Downloader {
}
Log.d(TAG, "Starting download");
- while (!cancelled
- && (count = connection.read(buffer)) != -1) {
- out.write(buffer, 0, count);
- request.setSoFar(request.getSoFar() + count);
- request.setProgressPercent((int) (((double) request
- .getSoFar() / (double) request
- .getSize()) * 100));
+ try {
+ while (!cancelled
+ && (count = connection.read(buffer)) != -1) {
+ out.write(buffer, 0, count);
+ request.setSoFar(request.getSoFar() + count);
+ request.setProgressPercent((int) (((double) request
+ .getSoFar() / (double) request
+ .getSize()) * 100));
+ }
+ } catch(IOException e) {
+ Log.e(TAG, Log.getStackTraceString(e));
}
if (cancelled) {
onCancelled();
@@ -210,6 +214,9 @@ public class HttpDownloader extends Downloader {
request.getSize()
);
return;
+ } else if(request.getSoFar() == 0){
+ onFail(DownloadError.ERROR_IO_ERROR, "Download completed, but nothing was read");
+ return;
}
onSuccess();
}