diff options
| author | Cary Clark <cary@android.com> | 2009-08-12 13:20:41 -0400 |
|---|---|---|
| committer | Cary Clark <cary@android.com> | 2009-08-13 15:04:47 -0400 |
| commit | 543221fc4b9dd16db2c687cd59f1eeea8d89c5a5 (patch) | |
| tree | f937d9b901517fb78d319650a1d5a294d0730e46 /core/java/android/webkit/CacheManager.java | |
| parent | 6679f2f70813eb93bf88297dc2de5e56bc7d7ca0 (diff) | |
handle false results in file.delete
found by findbugs
http://b/issue?id=1856614
Diffstat (limited to 'core/java/android/webkit/CacheManager.java')
| -rw-r--r-- | core/java/android/webkit/CacheManager.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/core/java/android/webkit/CacheManager.java b/core/java/android/webkit/CacheManager.java index d8f87cf39101..02e8d6f358f2 100644 --- a/core/java/android/webkit/CacheManager.java +++ b/core/java/android/webkit/CacheManager.java @@ -426,13 +426,17 @@ public final class CacheManager { } cacheRet.contentLength = cacheRet.outFile.length(); - if (checkCacheRedirect(cacheRet.httpStatusCode)) { + boolean redirect = checkCacheRedirect(cacheRet.httpStatusCode); + if (redirect) { // location is in database, no need to keep the file cacheRet.contentLength = 0; cacheRet.localPath = ""; - cacheRet.outFile.delete(); - } else if (cacheRet.contentLength == 0) { - cacheRet.outFile.delete(); + } + if ((redirect || cacheRet.contentLength == 0) + && !cacheRet.outFile.delete()) { + Log.e(LOGTAG, cacheRet.outFile.getPath() + " delete failed."); + } + if (cacheRet.contentLength == 0) { return; } @@ -467,7 +471,10 @@ public final class CacheManager { // if mBaseDir doesn't exist, files can be null. if (files != null) { for (int i = 0; i < files.length; i++) { - new File(mBaseDir, files[i]).delete(); + File f = new File(mBaseDir, files[i]); + if (!f.delete()) { + Log.e(LOGTAG, f.getPath() + " delete failed."); + } } } } catch (SecurityException e) { @@ -495,7 +502,10 @@ public final class CacheManager { ArrayList<String> pathList = mDataBase.trimCache(CACHE_TRIM_AMOUNT); int size = pathList.size(); for (int i = 0; i < size; i++) { - new File(mBaseDir, pathList.get(i)).delete(); + File f = new File(mBaseDir, pathList.get(i)); + if (!f.delete()) { + Log.e(LOGTAG, f.getPath() + " delete failed."); + } } } } |
