diff options
| author | 2016-12-02 22:56:10 +0000 | |
|---|---|---|
| committer | 2016-12-02 22:56:10 +0000 | |
| commit | 0455c300353b7f5b651491e94bb9e38efe5fa0db (patch) | |
| tree | 3dd0ae61bea1f0647c62c3d97f01b1818e4c7cef | |
| parent | 17bd8c5c6b714dd7027d1f69c222b9798ec959e9 (diff) | |
| parent | 35b99da33a34620283423ec84023359867b69645 (diff) | |
Merge "Fix the deadlock problem" am: fa228e06f6 am: e8c0e1098e
am: 35b99da33a
Change-Id: I5aab63f06fcb6d234cef4d5b9315c712bdd031d1
| -rw-r--r-- | services/backup/java/com/android/server/backup/BackupManagerService.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 8424b3963d78..e4f3141838a2 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -2399,16 +2399,15 @@ public class BackupManagerService { } catch (InterruptedException e) { // just bail Slog.w(TAG, "Interrupted: " + e); - mActivityManager.clearPendingBackup(); - return null; + mConnecting = false; + mConnectedAgent = null; } } // if we timed out with no connect, abort and move on if (mConnecting == true) { Slog.w(TAG, "Timeout waiting for agent " + app); - mActivityManager.clearPendingBackup(); - return null; + mConnectedAgent = null; } if (DEBUG) Slog.i(TAG, "got agent " + mConnectedAgent); agent = mConnectedAgent; @@ -2417,6 +2416,13 @@ public class BackupManagerService { // can't happen - ActivityManager is local } } + if (agent == null) { + try { + mActivityManager.clearPendingBackup(); + } catch (RemoteException e) { + // can't happen - ActivityManager is local + } + } return agent; } |