summaryrefslogtreecommitdiff
path: root/apex
diff options
context:
space:
mode:
author lijilou <lijilou@xiaomi.corp-partner.google.com> 2024-12-02 13:42:16 +0800
committer Jilou li <lijilou@xiaomi.corp-partner.google.com> 2024-12-12 01:39:07 -0800
commita05b30e62295264d06367614c6570c871476328e (patch)
treed936a08039a1553719db5ad1289bbb52d4601f9d /apex
parent2623db82d4de5f78926a4a285f10167c2bcea832 (diff)
JobConcurrencyManager: fix the NPE problem.
mRunningJob maybe null if there is no job running. Test: OEM monkey test Flag: EXEMPT bugfix Bug: 381776408 Change-Id: I36284ba4afe28d6da57ee79a2d27d722928747ae
Diffstat (limited to 'apex')
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
index ba8e3e8b48fc..5255e7227709 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobConcurrencyManager.java
@@ -1034,7 +1034,7 @@ class JobConcurrencyManager {
for (int p = preferredUidOnly.size() - 1; p >= 0; --p) {
final ContextAssignment assignment = preferredUidOnly.get(p);
final JobStatus runningJob = assignment.context.getRunningJobLocked();
- if (runningJob.getUid() != nextPending.getUid()) {
+ if (runningJob == null || runningJob.getUid() != nextPending.getUid()) {
continue;
}
final int jobBias = mService.evaluateJobBiasLocked(runningJob);
@@ -1916,8 +1916,9 @@ class JobConcurrencyManager {
for (int i = 0; i < mActiveServices.size(); i++) {
final JobServiceContext jc = mActiveServices.get(i);
final JobStatus js = jc.getRunningJobLocked();
- if (jc.stopIfExecutingLocked(pkgName, userId, namespace, matchJobId, jobId,
- stopReason, internalStopReason)) {
+ if (js != null &&
+ jc.stopIfExecutingLocked(pkgName, userId, namespace,
+ matchJobId, jobId, stopReason, internalStopReason)) {
foundSome = true;
pw.print("Stopping job: ");
js.printUniqueId(pw);