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
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 1a91d25..aa6991d 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.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 @@
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<IBinder, ArraySet<AppHintSession>> tokenMap = mActiveSessions.get(mUid);
if (tokenMap == null) {
Slogf.w(TAG, "UID %d is not present in active session map", mUid);