From 5f2f41350ec127c16ea05722687201ad7a227658 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 26 Sep 2011 13:10:38 -0700 Subject: [PATCH] Don't hang in restore if the transport reports failure Casualty of the recent refactoring: in this particular error case, the restore sequence wasn't being directed into the finalization state. Fixes bug 5336295. Change-Id: Ibf5570cd1003e123da8b561685de8479663340ce --- services/java/com/android/server/BackupManagerService.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java index 2938c45e2c535..2d24f992f3105 100644 --- a/services/java/com/android/server/BackupManagerService.java +++ b/services/java/com/android/server/BackupManagerService.java @@ -4372,8 +4372,13 @@ class BackupManagerService extends IBackupManager.Stub { ParcelFileDescriptor.MODE_TRUNCATE); if (mTransport.getRestoreData(mBackupData) != BackupConstants.TRANSPORT_OK) { + // Transport-level failure, so we wind everything up and + // terminate the restore operation. Slog.e(TAG, "Error getting restore data for " + packageName); EventLog.writeEvent(EventLogTags.RESTORE_TRANSPORT_FAILURE); + mBackupData.close(); + mBackupDataName.delete(); + executeNextState(RestoreState.FINAL); return; }