From bcb1cffda497394735ad72740dd5c42ad96c3c19 Mon Sep 17 00:00:00 2001 From: Xiang Wang Date: Thu, 30 Nov 2023 00:02:51 +0000 Subject: Don't throw if hint session death link doesn't exist Bug: 313458589 Bug: 312773552 Test: atest HintManagerServiceTest (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ee142e2dbef2e8d05f415a36813e03fbfe1ec6e7) Merged-In: I985a1869bd7575cad44a21394dc4d68d2248be6c Change-Id: I985a1869bd7575cad44a21394dc4d68d2248be6c --- .../java/com/android/server/power/hint/HintManagerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/power/hint/HintManagerService.java b/services/core/java/com/android/server/power/hint/HintManagerService.java index 1a91d252c431..aa6991d2105d 100644 --- a/services/core/java/com/android/server/power/hint/HintManagerService.java +++ b/services/core/java/com/android/server/power/hint/HintManagerService.java @@ -50,6 +50,7 @@ import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Arrays; import java.util.List; +import java.util.NoSuchElementException; import java.util.Objects; /** An hint service implementation that runs in System Server process. */ @@ -520,7 +521,11 @@ public final class HintManagerService extends SystemService { if (mHalSessionPtr == 0) return; mNativeWrapper.halCloseHintSession(mHalSessionPtr); mHalSessionPtr = 0; - mToken.unlinkToDeath(this, 0); + try { + mToken.unlinkToDeath(this, 0); + } catch (NoSuchElementException ignored) { + Slogf.d(TAG, "Death link does not exist for session with UID " + mUid); + } ArrayMap> tokenMap = mActiveSessions.get(mUid); if (tokenMap == null) { Slogf.w(TAG, "UID %d is not present in active session map", mUid); -- cgit v1.2.3-59-g8ed1b