From 856734b426e450db37e52ecfebfd511d7b8e0fc3 Mon Sep 17 00:00:00 2001 From: Pranav Madapurmath Date: Wed, 13 Aug 2025 10:47:58 -0700 Subject: [PATCH] Catch IllegalArgumentException when unbinding CallRedirectionServiceConnection Wrap the `mContext.unbindService` call in a try-catch block to handle `IllegalArgumentException`. This can occur if the service connection isn't registered when the timeout occurs, preventing a crash. Bug: 438408401 Flag: EXEMPT bug fix Test: m Telecom (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:615a452b1eb9a1165b6892b715ca9acb39c9fc48) Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:f8423dc9f2f04530b2c3c9fba111a6a826ecd7ac Merged-In: I9494b1bf209579125b30fb859ad62cd58b5dffd7 Change-Id: I9494b1bf209579125b30fb859ad62cd58b5dffd7 --- .../telecom/callredirection/CallRedirectionProcessor.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java b/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java index 1b25441cb..76ddd71bc 100644 --- a/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java +++ b/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java @@ -136,8 +136,12 @@ public class CallRedirectionProcessor implements CallRedirectionCallback { Log.i(this, "notifyTimeout: call redirection has timed out so " + "unbinding the connection"); if (mConnection != null) { - // We still need to call unbind even if the service disconnected. - mContext.unbindService(mConnection); + try { + // We still need to call unbind even if the service disconnected. + mContext.unbindService(mConnection); + } catch (IllegalArgumentException e) { + Log.e(this, e, "Error unbinding the connection"); + } mConnection = null; } mService = null; -- GitLab