summaryrefslogtreecommitdiff
path: root/telephony
diff options
context:
space:
mode:
author Thomas Nguyen <tnd@google.com> 2022-10-12 21:33:01 +0000
committer Thomas Nguyen <tnd@google.com> 2022-11-09 18:39:40 +0000
commit086e72818ac4af00273972df32b76f06e219082c (patch)
tree966aa5036fe57b2bf161ba0ebdaf246ddacd8e78 /telephony
parent691bfb642ad6e59a918ccef88a570d3fc9d2cdda (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.java28
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;
}
}