diff options
author | 2022-10-12 21:33:01 +0000 | |
---|---|---|
committer | 2022-11-09 18:39:40 +0000 | |
commit | 086e72818ac4af00273972df32b76f06e219082c (patch) | |
tree | 966aa5036fe57b2bf161ba0ebdaf246ddacd8e78 /telephony | |
parent | 691bfb642ad6e59a918ccef88a570d3fc9d2cdda (diff) |
Fix for NullPointerException in SmsMessage
Bug: 120766197
Test: run the following tests:
- atest android.telephony.cts.SmsMessageTest
- manual: send and receive SMS
Change-Id: I197681cf79bbe47521d77432ffcd56d3e3acceab
Merged-In: I197681cf79bbe47521d77432ffcd56d3e3acceab
Diffstat (limited to 'telephony')
-rw-r--r-- | telephony/java/android/telephony/SmsMessage.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/telephony/java/android/telephony/SmsMessage.java b/telephony/java/android/telephony/SmsMessage.java index e0145e661660..c2b65f86ff02 100644 --- a/telephony/java/android/telephony/SmsMessage.java +++ b/telephony/java/android/telephony/SmsMessage.java @@ -1092,6 +1092,11 @@ public class SmsMessage { if (!TextUtils.isEmpty(simOperator)) { for (NoEmsSupportConfig currentConfig : mNoEmsSupportConfigList) { + if (currentConfig == null) { + Rlog.w("SmsMessage", "hasEmsSupport currentConfig is null"); + continue; + } + if (simOperator.startsWith(currentConfig.mOperatorNumber) && (TextUtils.isEmpty(currentConfig.mGid1) || (!TextUtils.isEmpty(currentConfig.mGid1) && @@ -1155,18 +1160,21 @@ public class SmsMessage { private static boolean mIsNoEmsSupportConfigListLoaded = false; private static boolean isNoEmsSupportConfigListExisted() { - if (!mIsNoEmsSupportConfigListLoaded) { - Resources r = Resources.getSystem(); - if (r != null) { - String[] listArray = r.getStringArray( - com.android.internal.R.array.no_ems_support_sim_operators); - if ((listArray != null) && (listArray.length > 0)) { - mNoEmsSupportConfigList = new NoEmsSupportConfig[listArray.length]; - for (int i=0; i<listArray.length; i++) { - mNoEmsSupportConfigList[i] = new NoEmsSupportConfig(listArray[i].split(";")); + synchronized (SmsMessage.class) { + if (!mIsNoEmsSupportConfigListLoaded) { + Resources r = Resources.getSystem(); + if (r != null) { + String[] listArray = r.getStringArray( + com.android.internal.R.array.no_ems_support_sim_operators); + if ((listArray != null) && (listArray.length > 0)) { + mNoEmsSupportConfigList = new NoEmsSupportConfig[listArray.length]; + for (int i = 0; i < listArray.length; i++) { + mNoEmsSupportConfigList[i] = new NoEmsSupportConfig( + listArray[i].split(";")); + } } + mIsNoEmsSupportConfigListLoaded = true; } - mIsNoEmsSupportConfigListLoaded = true; } } |