summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Christopher Tate <ctate@google.com> 2014-02-25 17:42:21 -0800
committer Christopher Tate <ctate@google.com> 2014-02-25 17:42:21 -0800
commita9b91864a1aedd71eaaaa43ee078cf93922289f3 (patch)
tree378f6fa94ebe60115b067a779d35d07e36e570e7
parent3651cb7b4a0c3c731905301e868cca1c3af5aa21 (diff)
Deal with apps known to LocalTransport backend but with no data
An app might have backed something up and later deleted it, in which case it will have a directory in the LocalTransport bookkeeping but with no actual dataset. Skip these packages at restore time, since we know a priori that there will be nothing to do. Change-Id: I85853097bc65ed60e5efd217ee6553b50459e445
-rw-r--r--core/java/com/android/internal/backup/LocalTransport.java4
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/com/android/internal/backup/LocalTransport.java b/core/java/com/android/internal/backup/LocalTransport.java
index 2fe2494bb347..a604d844b4d5 100644
--- a/core/java/com/android/internal/backup/LocalTransport.java
+++ b/core/java/com/android/internal/backup/LocalTransport.java
@@ -233,7 +233,9 @@ public class LocalTransport extends IBackupTransport.Stub {
if (mRestorePackages == null) throw new IllegalStateException("startRestore not called");
while (++mRestorePackage < mRestorePackages.length) {
String name = mRestorePackages[mRestorePackage].packageName;
- if (new File(mDataDir, name).isDirectory()) {
+ // skip packages where we have a data dir but no actual contents
+ String[] contents = (new File(mDataDir, name)).list();
+ if (contents != null && contents.length > 0) {
if (DEBUG) Log.v(TAG, " nextRestorePackage() = " + name);
return name;
}