diff options
| author | Fred Quintana <fredq@google.com> | 2011-10-24 20:36:30 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-10-24 20:36:30 -0700 |
| commit | 763480fbcabedfc2f425484ed74bc1e2e1392176 (patch) | |
| tree | 90165c00f3b426817e2e35a7119d53a37409d4e1 /core/java/android | |
| parent | 5657b7399eb94429a8cc00ad9f79eaad0c26b93b (diff) | |
| parent | 166466d483cc3d57e7d3d465fd92ce62409c8455 (diff) | |
Merge "Fixed a bug that causes AccountManager calls to hang forever, eventually exhausting the binder threads in the gapps process, making it unusable." into ics-mr0
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/accounts/AccountManagerService.java | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/core/java/android/accounts/AccountManagerService.java b/core/java/android/accounts/AccountManagerService.java index 1ba8eee3d3b2..4f3405b852c9 100644 --- a/core/java/android/accounts/AccountManagerService.java +++ b/core/java/android/accounts/AccountManagerService.java @@ -499,7 +499,7 @@ public class AccountManagerService if (response != null) { try { if (result == null) { - onError(AccountManager.ERROR_CODE_INVALID_RESPONSE, "null bundle"); + response.onError(AccountManager.ERROR_CODE_INVALID_RESPONSE, "null bundle"); return; } if (Log.isLoggable(TAG, Log.VERBOSE)) { @@ -1541,8 +1541,15 @@ public class AccountManagerService mAuthenticator = null; IAccountManagerResponse response = getResponseAndClose(); if (response != null) { - onError(AccountManager.ERROR_CODE_REMOTE_EXCEPTION, - "disconnected"); + try { + response.onError(AccountManager.ERROR_CODE_REMOTE_EXCEPTION, + "disconnected"); + } catch (RemoteException e) { + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "Session.onServiceDisconnected: " + + "caught RemoteException while responding", e); + } + } } } @@ -1551,8 +1558,15 @@ public class AccountManagerService public void onTimedOut() { IAccountManagerResponse response = getResponseAndClose(); if (response != null) { - onError(AccountManager.ERROR_CODE_REMOTE_EXCEPTION, - "timeout"); + try { + response.onError(AccountManager.ERROR_CODE_REMOTE_EXCEPTION, + "timeout"); + } catch (RemoteException e) { + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "Session.onTimedOut: caught RemoteException while responding", + e); + } + } } } |
