diff options
| -rw-r--r-- | services/java/com/android/server/BackupManagerService.java | 4 |
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); } } } |