summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tetsutoki Shiozawa <tetsutoki.shiozawa@sony.com> 2017-10-27 19:13:58 +0000
committer android-build-merger <android-build-merger@google.com> 2017-10-27 19:13:58 +0000
commite03114f9f648d29e7419a051f84dd7d651bcb070 (patch)
treeacd8c2a2512be2ea6c0398099e7b0b15efad7f3e
parent26b78bc9d11e9061815fd8330a7886f244eea3cb (diff)
parent200a65be7fa920f4bb26a91c3a9a3117ee2cd0e3 (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.java12
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();
+ }
}
}