Merge "Don't cast IAE to list for getSystemSelectionChannels" am: f411f0a61e
Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/1727531
Change-Id: I98a612a9c5258c9d8dd5405a1493c28f75923f0e
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index d1479a1..67dc0bf 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -1618,8 +1618,8 @@
if (ar.exception == null && ar.result != null) {
request.result = ar.result;
} else {
- request.result = new IllegalArgumentException(
- "Failed to retrieve system selection channels");
+ request.result = new IllegalStateException(
+ "Failed to retrieve system selecton channels");
if (ar.result == null) {
loge("getSystemSelectionChannels: Empty response");
} else {
@@ -9043,9 +9043,11 @@
WorkSource workSource = getWorkSource(Binder.getCallingUid());
final long identity = Binder.clearCallingIdentity();
try {
- List<RadioAccessSpecifier> specifiers =
- (List<RadioAccessSpecifier>) sendRequest(CMD_GET_SYSTEM_SELECTION_CHANNELS,
- null, subId, workSource);
+ Object result = sendRequest(CMD_GET_SYSTEM_SELECTION_CHANNELS, null, subId, workSource);
+ if (result instanceof IllegalStateException) {
+ throw (IllegalStateException) result;
+ }
+ List<RadioAccessSpecifier> specifiers = (List<RadioAccessSpecifier>) result;
if (DBG) log("getSystemSelectionChannels: " + specifiers);
return specifiers;
} finally {