summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Dementyev <dementyev@google.com>2024-01-03 09:26:56 -0800
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2024-01-11 04:47:30 +0000
commit813900c458e9113e27d8d44a912b1c7ae281381c (patch)
tree4aff40496c54aab704113a32ebca4f851fac9431
parent022aff702e6607ca21d2eb6947f126e8d59a61c5 (diff)
downloadbase-813900c458e9113e27d8d44a912b1c7ae281381c.tar.gz
Close AccountManagerService.session after timeout.
Bug: 303905130 Bug: 316893159 Test: manual (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bb53f192e0ceaa026a083da156ef0cb0140f0c09) Merged-In: Ib4cebf1750fc6324dc1c8853e0d716ea5e8ec073 Change-Id: Ib4cebf1750fc6324dc1c8853e0d716ea5e8ec073
-rw-r--r--services/core/java/com/android/server/accounts/AccountManagerService.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
index 8e1e3d86146f..cba28f3a596f 100644
--- a/services/core/java/com/android/server/accounts/AccountManagerService.java
+++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
@@ -189,6 +189,7 @@ public class AccountManagerService
final MessageHandler mHandler;
+ private static final int TIMEOUT_DELAY_MS = 1000 * 60 * 15;
// Messages that can be sent on mHandler
private static final int MESSAGE_TIMED_OUT = 3;
private static final int MESSAGE_COPY_SHARED_ACCOUNT = 4;
@@ -4903,6 +4904,7 @@ public class AccountManagerService
synchronized (mSessions) {
mSessions.put(toString(), this);
}
+ scheduleTimeout();
if (response != null) {
try {
response.asBinder().linkToDeath(this, 0 /* flags */);
@@ -5070,6 +5072,11 @@ public class AccountManagerService
}
}
+ private void scheduleTimeout() {
+ mHandler.sendMessageDelayed(
+ mHandler.obtainMessage(MESSAGE_TIMED_OUT, this), TIMEOUT_DELAY_MS);
+ }
+
public void cancelTimeout() {
mHandler.removeMessages(MESSAGE_TIMED_OUT, this);
}
@@ -5107,6 +5114,9 @@ public class AccountManagerService
public void onTimedOut() {
IAccountManagerResponse response = getResponseAndClose();
+ if (Log.isLoggable(TAG, Log.VERBOSE)) {
+ Log.v(TAG, "Session.onTimedOut");
+ }
if (response != null) {
try {
response.onError(AccountManager.ERROR_CODE_REMOTE_EXCEPTION,