diff options
| author | 2017-10-27 19:13:58 +0000 | |
|---|---|---|
| committer | 2017-10-27 19:13:58 +0000 | |
| commit | e03114f9f648d29e7419a051f84dd7d651bcb070 (patch) | |
| tree | acd8c2a2512be2ea6c0398099e7b0b15efad7f3e | |
| parent | 26b78bc9d11e9061815fd8330a7886f244eea3cb (diff) | |
| parent | 200a65be7fa920f4bb26a91c3a9a3117ee2cd0e3 (diff) | |
Merge "Fix: AccountManagerService crashed by accessing closed db" am: 6ac8f42d9e am: 741736cafa
am: 200a65be7f
Change-Id: I621615c79bce6fea56072dde03a41d4f7c2ce5c0
| -rw-r--r-- | services/core/java/com/android/server/accounts/AccountManagerService.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index c68403289723..0d4f5cb81b49 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -5101,8 +5101,16 @@ public class AccountManagerService logStatement.bindLong(4, callingUid); logStatement.bindString(5, tableName); logStatement.bindLong(6, userDebugDbInsertionPoint); - logStatement.execute(); - logStatement.clearBindings(); + try { + logStatement.execute(); + } catch (IllegalStateException e) { + // Guard against crash, DB can already be closed + // since this statement is executed on a handler thread + Slog.w(TAG, "Failed to insert a log record. accountId=" + accountId + + " action=" + action + " tableName=" + tableName + " Error: " + e); + } finally { + logStatement.clearBindings(); + } } } |