Don't call size() on a null List
Christopher Tate [Tue, 9 Jun 2015 01:17:21 +0000 (18:17 -0700)]
JobScheduler.getAllPendingJobs() can return null when there are none.
Deal with it.

Bug 21642868

Change-Id: I11fcc6e146f9db51e03dcf57f7518bb7878fbd28

src/com/android/providers/downloads/DownloadService.java

index 58cf380..b0b7329 100644 (file)
@@ -219,11 +219,13 @@ public class DownloadService extends Service {
 
     private boolean needToScheduleCleanup(JobScheduler js) {
         List<JobInfo> myJobs = js.getAllPendingJobs();
-        final int N = myJobs.size();
-        for (int i = 0; i < N; i++) {
-            if (myJobs.get(i).getId() == CLEANUP_JOB_ID) {
-                // It's already been (persistently) scheduled; no need to do it again
-                return false;
+        if (myJobs != null) {
+            final int N = myJobs.size();
+            for (int i = 0; i < N; i++) {
+                if (myJobs.get(i).getId() == CLEANUP_JOB_ID) {
+                    // It's already been (persistently) scheduled; no need to do it again
+                    return false;
+                }
             }
         }
         return true;