Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit daed7d6e authored by Brad Ebinger's avatar Brad Ebinger Committed by Automerger Merge Worker
Browse files

Merge "Fix NPE occurring while accessing the token Map in AppSmsManager" am: 94d7d75b

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/1621048

Change-Id: Icc8af9b3aa28271b8c3f065b0a79b1b7aaebe844
parents c5bac2b8 94d7d75b
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -36,8 +36,8 @@ import com.android.internal.annotations.GuardedBy;
import com.android.internal.util.Preconditions;

import java.security.SecureRandom;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;


@@ -187,9 +187,10 @@ public class AppSmsManager {
    private void removeExpiredTokenLocked() {
        final long currentTimeMillis = System.currentTimeMillis();

        final Set<String> keySet = mTokenMap.keySet();
        for (String token : keySet) {
            AppRequestInfo request = mTokenMap.get(token);
        Iterator<Map.Entry<String, AppRequestInfo>> iterator = mTokenMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, AppRequestInfo> entry = iterator.next();
            AppRequestInfo request = entry.getValue();
            if (request.packageBasedToken
                    && (currentTimeMillis - TIMEOUT_MILLIS > request.timestamp)) {
                // Send the provided intent with SMS retriever status
@@ -202,8 +203,9 @@ public class AppSmsManager {
                } catch (PendingIntent.CanceledException e) {
                    // do nothing
                }

                removeRequestLocked(request);
                // Remove from mTokenMap and mPackageMap
                iterator.remove();
                mPackageMap.remove(entry.getValue().packageName);
            }
        }
    }