summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorusul <usultis@gmail.com>2010-03-28 16:26:05 +0100
committerJean-Baptiste Queru <jbq@google.com>2010-05-10 12:55:15 -0700
commit72f14a6f122f020e560e6572b2581c43b3ea90e3 (patch)
tree9efda61b35f5b154aeb59ed921eac4d604dc87f4 /src
parentab3fade37762a91ec76cfc1b1f4fb903e2d1b7da (diff)
downloadandroid_packages_providers_DownloadProvider-72f14a6f122f020e560e6572b2581c43b3ea90e3.tar.gz
android_packages_providers_DownloadProvider-72f14a6f122f020e560e6572b2581c43b3ea90e3.tar.bz2
android_packages_providers_DownloadProvider-72f14a6f122f020e560e6572b2581c43b3ea90e3.zip
code left opened files behind
verified with lsof DownloadProvider after downloading a file shows: ${proc} 338 10034 33w REG 179,0 167634 5 /sdcard/download/fw4-1.pdf Change-Id: I8e2412fe9a6348f5ece6f5ca3a9ebf99a4474bce
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadThread.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/DownloadThread.java b/src/com/android/providers/downloads/DownloadThread.java
index d899314b..1ad1d4f9 100644
--- a/src/com/android/providers/downloads/DownloadThread.java
+++ b/src/com/android/providers/downloads/DownloadThread.java
@@ -694,8 +694,10 @@ http_request_loop:
FileUtils.setPermissions(filename, 0644, -1, -1);
// Sync to storage after completion
+ FileOutputStream downloadedFileStream = null;
try {
- new FileOutputStream(filename, true).getFD().sync();
+ downloadedFileStream = new FileOutputStream(filename, true);
+ downloadedFileStream.getFD().sync();
} catch (FileNotFoundException ex) {
Log.w(Constants.TAG, "file " + filename + " not found: " + ex);
} catch (SyncFailedException ex) {
@@ -704,6 +706,16 @@ http_request_loop:
Log.w(Constants.TAG, "IOException trying to sync " + filename + ": " + ex);
} catch (RuntimeException ex) {
Log.w(Constants.TAG, "exception while syncing file: ", ex);
+ } finally {
+ if(downloadedFileStream != null) {
+ try {
+ downloadedFileStream.close();
+ } catch (IOException ex) {
+ Log.w(Constants.TAG, "IOException while closing synced file: ", ex);
+ } catch (RuntimeException ex) {
+ Log.w(Constants.TAG, "exception while closing file: ", ex);
+ }
+ }
}
}
}