BaseBundle's mMap may be null on some devices in some situations.
Ignore the NPE and move on.

Fixes: 138364061
Test: Ran existing tests.
Change-Id: I97aa09c85517115950c892e2e00523ed88904f79
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 174d43b..f4c5c4f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -51,4 +51,4 @@
   <component name="ProjectType">
     <option name="id" value="Android" />
   </component>
-</project>
\ No newline at end of file
+</project>
diff --git a/work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobScheduler.java b/work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobScheduler.java
index d4de7b9..03df2de 100644
--- a/work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobScheduler.java
+++ b/work/workmanager/src/main/java/androidx/work/impl/background/systemjob/SystemJobScheduler.java
@@ -264,9 +264,7 @@
             List<JobInfo> jobs = getPendingJobs(context, jobScheduler);
             if (jobs != null && !jobs.isEmpty()) {
                 for (JobInfo jobInfo : jobs) {
-                    PersistableBundle extras = jobInfo.getExtras();
-                    //noinspection ConstantConditions
-                    if (extras == null || !extras.containsKey(EXTRA_WORK_SPEC_ID)) {
+                    if (getWorkSpecIdFromJobInfo(jobInfo) == null) {
                         cancelJobById(jobScheduler, jobInfo.getId());
                     }
                 }
@@ -312,7 +310,6 @@
      * For reference: b/133556574, b/133556809, b/133556535
      */
     @Nullable
-    @SuppressWarnings("ConstantConditions")
     private static List<Integer> getPendingJobIds(
             @NonNull Context context,
             @NonNull JobScheduler jobScheduler,
@@ -327,14 +324,25 @@
         List<Integer> jobIds = new ArrayList<>(2);
 
         for (JobInfo jobInfo : jobs) {
-            PersistableBundle extras = jobInfo.getExtras();
-            if (extras != null && extras.containsKey(EXTRA_WORK_SPEC_ID)) {
-                if (workSpecId.equals(extras.getString(EXTRA_WORK_SPEC_ID))) {
-                    jobIds.add(jobInfo.getId());
-                }
+            if (workSpecId.equals(getWorkSpecIdFromJobInfo(jobInfo))) {
+                jobIds.add(jobInfo.getId());
             }
         }
 
         return jobIds;
     }
-}
+
+    @SuppressWarnings("ConstantConditions")
+    private static @Nullable String getWorkSpecIdFromJobInfo(@NonNull JobInfo jobInfo) {
+        PersistableBundle extras = jobInfo.getExtras();
+        try {
+            if (extras != null && extras.containsKey(EXTRA_WORK_SPEC_ID)) {
+                return extras.getString(EXTRA_WORK_SPEC_ID);
+            }
+        } catch (NullPointerException e) {
+            // b/138364061: BaseBundle.mMap seems to be null in some cases here.  Ignore and return
+            // null.
+        }
+        return null;
+    }
+}
\ No newline at end of file