diff options
author | Vasu Nori <vnori@google.com> | 2011-01-12 16:26:42 -0800 |
---|---|---|
committer | Vasu Nori <vnori@google.com> | 2011-01-12 17:27:47 -0800 |
commit | 47cb8be0fea98c2f9d96b269278f2e011e810413 (patch) | |
tree | 0c68bf2d181350d1c471a6446011f6d17008bbaf /src/com | |
parent | a7ead263890e2bab9794aadad610fc7fb00452bf (diff) | |
download | android_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.tar.gz android_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.tar.bz2 android_packages_providers_DownloadProvider-47cb8be0fea98c2f9d96b269278f2e011e810413.zip |
bug:3332449 downloadmanager deleting downloaded files sometimes
removeSpuriousFiles() method in StorageManager.java is removing
files because of it incorrectly thought a given file has NO entry
in downloads db.
more details:
List<File> files;
String filename;
files.remove(filename)
remove should be new File(filename)
most probably this fix also addresses bug:3324673
Change-Id: I22c58398fe874fa81939b575c782b6700a2cac4e
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/providers/downloads/StorageManager.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/com/android/providers/downloads/StorageManager.java b/src/com/android/providers/downloads/StorageManager.java index e9638b8f..72658344 100644 --- a/src/com/android/providers/downloads/StorageManager.java +++ b/src/com/android/providers/downloads/StorageManager.java @@ -26,6 +26,7 @@ import android.net.Uri; import android.os.Environment; import android.os.StatFs; import android.provider.Downloads; +import android.text.TextUtils; import android.util.Log; import com.android.internal.R; @@ -373,14 +374,20 @@ class StorageManager { if (files.size() == 0) { return; } - Cursor cursor = mContext.getContentResolver().query( Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI, new String[] { Downloads.Impl._DATA }, null, null, null); try { if (cursor != null) { while (cursor.moveToNext()) { - files.remove(cursor.getString(0)); + String filename = cursor.getString(0); + if (!TextUtils.isEmpty(filename)) { + if (Constants.LOGV) { + Log.i(Constants.TAG, "in removeSpuriousFiles, preserving file " + + filename); + } + files.remove(new File(filename)); + } } } } finally { |