summaryrefslogtreecommitdiffstats
path: root/telephony
diff options
context:
space:
mode:
authorChenjie Luo <cjluo@google.com>2015-12-03 12:24:12 -0800
committerChenjie Luo <cjluo@google.com>2015-12-03 14:58:01 -0800
commit90bc39d7e3fbf546b363d2358f6bb347620d6421 (patch)
tree29c858778fb8ef8e1a7e70544aafd0ff771ad96f /telephony
parent94cefd6adb7cf464e4765faaba001071b543517b (diff)
downloadframeworks_base-90bc39d7e3fbf546b363d2358f6bb347620d6421.zip
frameworks_base-90bc39d7e3fbf546b363d2358f6bb347620d6421.tar.gz
frameworks_base-90bc39d7e3fbf546b363d2358f6bb347620d6421.tar.bz2
Check NPE beforehand instead of catching it at runtime
This will fix the page fault when watch rings during incoming call Bug: 25904666 Change-Id: Ia7e6db0628108dbf298e3811a846534ba69c0b46
Diffstat (limited to 'telephony')
-rw-r--r--telephony/java/android/telephony/CarrierConfigManager.java34
1 files changed, 23 insertions, 11 deletions
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 29e54a3..eda71e8 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -612,12 +612,15 @@ public class CarrierConfigManager {
@Nullable
public PersistableBundle getConfigForSubId(int subId) {
try {
- return getICarrierConfigLoader().getConfigForSubId(subId);
+ ICarrierConfigLoader loader = getICarrierConfigLoader();
+ if (loader == null) {
+ Rlog.w(TAG, "Error getting config for subId " + subId
+ + " ICarrierConfigLoader is null");
+ return null;
+ }
+ return loader.getConfigForSubId(subId);
} catch (RemoteException ex) {
- Rlog.e(TAG, "Error getting config for subId " + Integer.toString(subId) + ": "
- + ex.toString());
- } catch (NullPointerException ex) {
- Rlog.e(TAG, "Error getting config for subId " + Integer.toString(subId) + ": "
+ Rlog.e(TAG, "Error getting config for subId " + subId + ": "
+ ex.toString());
}
return null;
@@ -653,11 +656,15 @@ public class CarrierConfigManager {
*/
public void notifyConfigChangedForSubId(int subId) {
try {
- getICarrierConfigLoader().notifyConfigChangedForSubId(subId);
+ ICarrierConfigLoader loader = getICarrierConfigLoader();
+ if (loader == null) {
+ Rlog.w(TAG, "Error reloading config for subId=" + subId
+ + " ICarrierConfigLoader is null");
+ return;
+ }
+ loader.notifyConfigChangedForSubId(subId);
} catch (RemoteException ex) {
Rlog.e(TAG, "Error reloading config for subId=" + subId + ": " + ex.toString());
- } catch (NullPointerException ex) {
- Rlog.e(TAG, "Error reloading config for subId=" + subId + ": " + ex.toString());
}
}
@@ -673,11 +680,15 @@ public class CarrierConfigManager {
@SystemApi
public void updateConfigForPhoneId(int phoneId, String simState) {
try {
- getICarrierConfigLoader().updateConfigForPhoneId(phoneId, simState);
+ ICarrierConfigLoader loader = getICarrierConfigLoader();
+ if (loader == null) {
+ Rlog.w(TAG, "Error updating config for phoneId=" + phoneId
+ + " ICarrierConfigLoader is null");
+ return;
+ }
+ loader.updateConfigForPhoneId(phoneId, simState);
} catch (RemoteException ex) {
Rlog.e(TAG, "Error updating config for phoneId=" + phoneId + ": " + ex.toString());
- } catch (NullPointerException ex) {
- Rlog.e(TAG, "Error updating config for phoneId=" + phoneId + ": " + ex.toString());
}
}
@@ -693,6 +704,7 @@ public class CarrierConfigManager {
}
/** @hide */
+ @Nullable
private ICarrierConfigLoader getICarrierConfigLoader() {
return ICarrierConfigLoader.Stub
.asInterface(ServiceManager.getService(Context.CARRIER_CONFIG_SERVICE));