diff options
author | Dmitry Dementyev <dementyev@google.com> | 2024-01-08 23:05:48 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2024-01-08 23:05:48 +0000 |
commit | 09ee2d47577cf7009ded93661c7e9192f8cbfa8f (patch) | |
tree | 626f7d928a16d9b192ad6db5fb123c54c1effb9f | |
parent | 3da76044f2dbdea585153fc507556f3b57dea447 (diff) | |
parent | ce8e2aea60eb895cb550c9668d43f2020db22491 (diff) | |
download | base-09ee2d47577cf7009ded93661c7e9192f8cbfa8f.tar.gz |
Merge "Close AccountManagerService.session after timeout." into rvc-dev am: 6faf0345e4 am: d69e6bcc59 am: 26893bb97b am: 3723b074a1 am: ce8e2aea60
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/25787790
Change-Id: I9ecde5f15d58d1b29ccbf93f7cc89dfecc9cd25f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | services/core/java/com/android/server/accounts/AccountManagerService.java | 10 |
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 5238595fe2a2..edc0bd3d79d5 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -184,6 +184,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; @@ -4842,6 +4843,7 @@ public class AccountManagerService synchronized (mSessions) { mSessions.put(toString(), this); } + scheduleTimeout(); if (response != null) { try { response.asBinder().linkToDeath(this, 0 /* flags */); @@ -5007,6 +5009,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); } @@ -5043,6 +5050,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, |