diff options
author | Chenjie Luo <cjluo@google.com> | 2015-12-03 12:24:12 -0800 |
---|---|---|
committer | Chenjie Luo <cjluo@google.com> | 2015-12-03 14:58:01 -0800 |
commit | 90bc39d7e3fbf546b363d2358f6bb347620d6421 (patch) | |
tree | 29c858778fb8ef8e1a7e70544aafd0ff771ad96f /telephony | |
parent | 94cefd6adb7cf464e4765faaba001071b543517b (diff) | |
download | frameworks_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.java | 34 |
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)); |