diff --git a/F-Droid/src/org/fdroid/fdroid/net/Downloader.java b/F-Droid/src/org/fdroid/fdroid/net/Downloader.java index 470dfd698..81028239f 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/Downloader.java +++ b/F-Droid/src/org/fdroid/fdroid/net/Downloader.java @@ -184,6 +184,7 @@ public abstract class Downloader { } outputStream.flush(); + outputStream.close(); } protected void sendProgress(int bytesRead, int totalBytes) { diff --git a/F-Droid/src/org/fdroid/fdroid/net/HttpDownloader.java b/F-Droid/src/org/fdroid/fdroid/net/HttpDownloader.java index 6aa5f857d..3258f4ac0 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/HttpDownloader.java +++ b/F-Droid/src/org/fdroid/fdroid/net/HttpDownloader.java @@ -34,6 +34,7 @@ public class HttpDownloader extends Downloader { protected static final String HEADER_FIELD_ETAG = "ETag"; protected HttpURLConnection connection; + private InputStream stream; private int statusCode = -1; private boolean onlyStream = false; @@ -64,7 +65,8 @@ public class HttpDownloader extends Downloader { public InputStream getInputStream() throws IOException { setupConnection(); - return new BufferedInputStream(connection.getInputStream()); + stream = new BufferedInputStream(connection.getInputStream()); + return stream; } public BufferedReader getBufferedReader () throws IOException @@ -169,6 +171,12 @@ public class HttpDownloader extends Downloader { public void close () { + try { + if (stream != null) + stream.close(); + } + catch (IOException e) {} + connection.disconnect(); } }