diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-06-04 21:19:13 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2015-06-04 21:19:13 -0400 |
commit | 2d4705461c00dcb131b848789fa2a8a6021d19da (patch) | |
tree | a9774180ecca9e37a648d08813c8da01d0ca8221 /core/src/main | |
parent | 3445fa3b13e6d8c172b9e5565170b3d7b4a30f69 (diff) | |
parent | dbf46dfcd8e35d52b6ca3f9ae534f6f3149443ac (diff) | |
download | AntennaPod-2d4705461c00dcb131b848789fa2a8a6021d19da.zip |
Merge pull request #857 from mfietz/issue/854-gzip-not-exhausted
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.java | 21 |
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..40b7de170 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.getSize() > 0 && request.getSoFar() == 0){ + onFail(DownloadError.ERROR_IO_ERROR, "Download completed, but nothing was read"); + return; } onSuccess(); } |