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

Commit f46d5009 authored by Chris Tate's avatar Chris Tate Committed by android-build-merger
Browse files

am a51f14d0: Merge "Fix NPE in JobServiceContext when closing job."

am: 20fb8187

* commit '20fb8187':
  Fix NPE in JobServiceContext when closing job.
parents 582a9c60 20fb8187
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -73,7 +73,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
    private static final long OP_TIMEOUT_MILLIS = 8 * 1000;

    private static final String[] VERB_STRINGS = {
            "VERB_BINDING", "VERB_STARTING", "VERB_EXECUTING", "VERB_STOPPING"
            "VERB_BINDING", "VERB_STARTING", "VERB_EXECUTING", "VERB_STOPPING", "VERB_FINISHED"
    };

    // States that a job occupies while interacting with the client.
@@ -81,6 +81,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
    static final int VERB_STARTING = 1;
    static final int VERB_EXECUTING = 2;
    static final int VERB_STOPPING = 3;
    static final int VERB_FINISHED = 4;

    // Messages that result from interactions with the client service.
    /** System timed out waiting for a response. */
@@ -178,6 +179,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                mRunningJob = null;
                mParams = null;
                mExecutionStartTimeElapsed = 0L;
                mVerb = VERB_FINISHED;
                removeOpTimeOut();
                return false;
            }
@@ -323,8 +325,8 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                    break;
                case MSG_CALLBACK:
                    if (DEBUG) {
                        Slog.d(TAG, "MSG_CALLBACK of : " + mRunningJob + " v:" +
                                (mVerb >= 0 ? VERB_STRINGS[mVerb] : "[invalid]"));
                        Slog.d(TAG, "MSG_CALLBACK of : " + mRunningJob
                                + " v:" + VERB_STRINGS[mVerb]);
                    }
                    removeOpTimeOut();

@@ -540,8 +542,12 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
         * we want to clean up internally.
         */
        private void closeAndCleanupJobH(boolean reschedule) {
            final JobStatus completedJob = mRunningJob;
            final JobStatus completedJob;
            synchronized (mLock) {
                if (mVerb == VERB_FINISHED) {
                    return;
                }
                completedJob = mRunningJob;
                try {
                    mBatteryStats.noteJobFinish(mRunningJob.getName(), mRunningJob.getUid());
                } catch (RemoteException e) {
@@ -554,7 +560,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                mWakeLock = null;
                mRunningJob = null;
                mParams = null;
                mVerb = -1;
                mVerb = VERB_FINISHED;
                mCancelled.set(false);
                service = null;
                mAvailable = true;