From 58ac838baaf7e7bfd2795b7f8e4cb9c5937cb5ed Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Wed, 20 Jul 2022 01:09:19 -0700 Subject: [PATCH] Throw illegal state exception when service is not available Bug: 239607619 Test: Build Change-Id: I84b3f813e798707d5564b54b6b2cc329f570908d --- .../java/android/telephony/SubscriptionManager.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index d2858eca8171e..f25498022087d 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -3040,8 +3040,9 @@ public class SubscriptionManager { * @param callback Callback will be triggered once it succeeds or failed. * Pass null if don't care about the result. * + * @throws IllegalStateException when subscription manager service is not available. + * @throws SecurityException when clients do not have MODIFY_PHONE_STATE permission. * @hide - * */ @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) @@ -3051,7 +3052,9 @@ public class SubscriptionManager { if (VDBG) logd("[setPreferredDataSubscriptionId]+ subId:" + subId); try { ISub iSub = TelephonyManager.getSubscriptionService(); - if (iSub == null) return; + if (iSub == null) { + throw new IllegalStateException("subscription manager service is null."); + } ISetOpportunisticDataCallback callbackStub = new ISetOpportunisticDataCallback.Stub() { @Override @@ -3071,7 +3074,8 @@ public class SubscriptionManager { }; iSub.setPreferredDataSubscriptionId(subId, needValidation, callbackStub); } catch (RemoteException ex) { - // ignore it + loge("setPreferredDataSubscriptionId RemoteException=" + ex); + ex.rethrowFromSystemServer(); } }