Răsfoiți Sursa

Release resources before trying to delete an incomplete file #264 #211

len 9 ani în urmă
părinte
comite
19bf47b6d2

+ 5 - 1
app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt

@@ -233,7 +233,11 @@ class DownloadManager(private val context: Context, private val sourceManager: S
         page.status = Page.DOWNLOAD_IMAGE
         return source.getImageProgressResponse(page)
                 .flatMap({ resp ->
-                    DiskUtils.saveBufferedSourceToDirectory(resp.body().source(), directory, filename)
+                    try {
+                        DiskUtils.saveBufferedSourceToDirectory(resp.body().source(), directory, filename)
+                    } finally {
+                        resp.body().close()
+                    }
                     Observable.just(page)
                 }).retry(2)
     }

+ 4 - 3
app/src/main/java/eu/kanade/tachiyomi/util/DiskUtils.java

@@ -56,12 +56,12 @@ public final class DiskUtils {
         try {
             bufferedSink = Okio.buffer(Okio.sink(writeFile));
             bufferedSink.writeAll(bufferedSource);
+            Util.closeQuietly(bufferedSink);
         } catch (Exception e) {
+            Util.closeQuietly(bufferedSink);
+            //noinspection ResultOfMethodCallIgnored
             writeFile.delete();
             throw new IOException("Unable to save image");
-        } finally {
-            Util.closeQuietly(bufferedSink);
-            Util.closeQuietly(bufferedSource);
         }
 
         return writeFile;
@@ -74,6 +74,7 @@ public final class DiskUtils {
             }
         }
 
+        //noinspection ResultOfMethodCallIgnored
         inputFile.delete();
     }