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

Commit c0595a7d authored by Matthew Williams's avatar Matthew Williams Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE in JobServiceContext" into lmp-dev

parents 0c1a2ef8 7ac52d5b
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -170,6 +170,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                mRunningJob = null;
                mParams = null;
                mExecutionStartTimeElapsed = 0L;
                removeOpTimeOut();
                return false;
            }
            try {
@@ -299,7 +300,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
        public void handleMessage(Message message) {
            switch (message.what) {
                case MSG_SERVICE_BOUND:
                    removeMessages(MSG_TIMEOUT);
                    removeOpTimeOut();
                    handleServiceBoundH();
                    break;
                case MSG_CALLBACK:
@@ -307,7 +308,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                        Slog.d(TAG, "MSG_CALLBACK of : " + mRunningJob + " v:" +
                                (mVerb >= 0 ? VERB_STRINGS[mVerb] : "[invalid]"));
                    }
                    removeMessages(MSG_TIMEOUT);
                    removeOpTimeOut();

                    if (mVerb == VERB_STARTING) {
                        final boolean workOngoing = message.arg2 == 1;
@@ -498,7 +499,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
         * VERB_STOPPING.
         */
        private void sendStopMessageH() {
            mCallbackHandler.removeMessages(MSG_TIMEOUT);
            removeOpTimeOut();
            if (mVerb != VERB_EXECUTING) {
                Slog.e(TAG, "Sending onStopJob for a job that isn't started. " + mRunningJob);
                closeAndCleanupJobH(false /* reschedule */);
@@ -540,7 +541,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
                service = null;
                mAvailable = true;
            }
            removeMessages(MSG_TIMEOUT);
            removeOpTimeOut();
            removeMessages(MSG_CALLBACK);
            removeMessages(MSG_SERVICE_BOUND);
            removeMessages(MSG_CANCEL);
@@ -555,7 +556,7 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
     * on with life.
     */
    private void scheduleOpTimeOut() {
        mCallbackHandler.removeMessages(MSG_TIMEOUT);
        removeOpTimeOut();

        final long timeoutMillis = (mVerb == VERB_EXECUTING) ?
                EXECUTING_TIMESLICE_MILLIS : OP_TIMEOUT_MILLIS;
@@ -568,4 +569,9 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne
        mCallbackHandler.sendMessageDelayed(m, timeoutMillis);
        mTimeoutElapsed = SystemClock.elapsedRealtime() + timeoutMillis;
    }


    private void removeOpTimeOut() {
        mCallbackHandler.removeMessages(MSG_TIMEOUT);
    }
}