aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-04-02 13:27:29 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-04-02 13:27:29 +0200
commitfaf6620c75156667c0ae4b5aa5b2e50fea439598 (patch)
tree80c46983757f500be791d743c1310b12d5022afb
parentcd2a50e1e859527b9e2f768a0a5cb87a6cd42e2b (diff)
parentd5fdf65e31d6ad77f116631efdf505170898df18 (diff)
downloadcgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.zip
cgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.tar.gz
cgeo-faf6620c75156667c0ae4b5aa5b2e50fea439598.tar.bz2
Merge branch 'release' into upstream
-rw-r--r--main/src/cgeo/geocaching/files/LocalStorage.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/files/LocalStorage.java b/main/src/cgeo/geocaching/files/LocalStorage.java
index 626f6e6..01c090b 100644
--- a/main/src/cgeo/geocaching/files/LocalStorage.java
+++ b/main/src/cgeo/geocaching/files/LocalStorage.java
@@ -9,6 +9,7 @@ import ch.boye.httpclientandroidlib.Header;
import ch.boye.httpclientandroidlib.HttpResponse;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import android.os.Environment;
@@ -361,9 +362,13 @@ public final class LocalStorage {
return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}
- public static boolean deleteDirectory(File path) {
- if (path.exists()) {
- for (final File file : path.listFiles()) {
+ public static boolean deleteDirectory(@NonNull final File dir) {
+ final File[] files = dir.listFiles();
+
+ // Although we are called on an existing directory, it might have been removed concurrently
+ // in the meantime, for example by the user or by another cleanup task.
+ if (files != null) {
+ for (final File file : files) {
if (file.isDirectory()) {
deleteDirectory(file);
} else {
@@ -372,7 +377,7 @@ public final class LocalStorage {
}
}
- return FileUtils.delete(path);
+ return FileUtils.delete(dir);
}
/**