summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/BackupManagerService.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index c493a12775fb..fc1ec033d89d 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -1276,7 +1276,11 @@ class BackupManagerService extends IBackupManager.Stub {
File savedStateName = new File(mStateDir, packageName);
newStateName.renameTo(savedStateName);
} catch (Exception e) {
+ // If the agent fails restore, it might have put the app's data
+ // into an incoherent state. For consistency we wipe its data
+ // again in this case before propagating the exception
Log.e(TAG, "Error restoring data for " + packageName, e);
+ clearApplicationDataSynchronous(packageName);
}
}
}