From d30a3c7f85af7764f2a4bd14bc5dfd2294cfad7f Mon Sep 17 00:00:00 2001 From: TYM Tsai Date: Tue, 19 Jul 2022 05:56:51 +0000 Subject: [PATCH] Catch exception when unlinkToDeath Catch the exception to avoid the system down. Bug: 238417834 Test: atest CtsCaontentCaptureService Change-Id: Ifacb91d9e961b71df0ac41690b952be981711870 Merged-In: Ifacb91d9e961b71df0ac41690b952be981711870 --- .../view/contentcapture/MainContentCaptureSession.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/contentcapture/MainContentCaptureSession.java b/core/java/android/view/contentcapture/MainContentCaptureSession.java index 98ef4e7ae6fae..90384b5203154 100644 --- a/core/java/android/view/contentcapture/MainContentCaptureSession.java +++ b/core/java/android/view/contentcapture/MainContentCaptureSession.java @@ -64,6 +64,7 @@ import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.NoSuchElementException; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -630,7 +631,11 @@ public final class MainContentCaptureSession extends ContentCaptureSession { mComponentName = null; mEvents = null; if (mDirectServiceInterface != null) { - mDirectServiceInterface.asBinder().unlinkToDeath(mDirectServiceVulture, 0); + try { + mDirectServiceInterface.asBinder().unlinkToDeath(mDirectServiceVulture, 0); + } catch (NoSuchElementException e) { + Log.w(TAG, "IContentCaptureDirectManager does not exist"); + } } mDirectServiceInterface = null; mHandler.removeMessages(MSG_FLUSH);