summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2014-01-17 20:11:33 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-17 20:11:33 +0000
commit808e8736fc4ce38c6d868541e8389d838a890fef (patch)
treeb92793274297af9e2bf103763bab10d51790917d /src
parentac048ae11d627dde28e98efdf6707dce2928b2ff (diff)
parentf9e455a61cf29e515adb4e3c56e8e9269bc868f9 (diff)
downloadandroid_packages_providers_DownloadProvider-808e8736fc4ce38c6d868541e8389d838a890fef.tar.gz
android_packages_providers_DownloadProvider-808e8736fc4ce38c6d868541e8389d838a890fef.tar.bz2
android_packages_providers_DownloadProvider-808e8736fc4ce38c6d868541e8389d838a890fef.zip
am f9e455a6: am 34d915e1: am 18794718: am c5d43a1f: Merge "Creates parent directories before creates file"
* commit 'f9e455a61cf29e515adb4e3c56e8e9269bc868f9': Creates parent directories before creates file
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/Helpers.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java
index 013faf27..3562dac7 100644
--- a/src/com/android/providers/downloads/Helpers.java
+++ b/src/com/android/providers/downloads/Helpers.java
@@ -141,7 +141,15 @@ public class Helpers {
// Claim this filename inside lock to prevent other threads from
// clobbering us. We're not paranoid enough to use O_EXCL.
try {
- new File(path).createNewFile();
+ File file = new File(path);
+ File parent = file.getParentFile();
+
+ // Make sure the parent directories exists before generates new file
+ if (parent != null && !parent.exists()) {
+ parent.mkdirs();
+ }
+
+ file.createNewFile();
} catch (IOException e) {
throw new StopRequestException(Downloads.Impl.STATUS_FILE_ERROR,
"Failed to create target file " + path, e);