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

Commit 05d49e39 authored by Christopher Tate's avatar Christopher Tate Committed by android-build-merger
Browse files

Merge "Catch SecurityException thrown from job binding" into qt-dev am: b15ce5ac

am: bb8962e9

Change-Id: I4456b2195b3e233f838e60d41aa3d8a5a481ed9d
parents 3d0fbe61 bb8962e9
Loading
Loading
Loading
Loading
+14 −4
Original line number Diff line number Diff line
@@ -247,10 +247,20 @@ public final class JobServiceContext implements ServiceConnection {
            mVerb = VERB_BINDING;
            scheduleOpTimeOutLocked();
            final Intent intent = new Intent().setComponent(job.getServiceComponent());
            boolean binding = mContext.bindServiceAsUser(intent, this,
            boolean binding = false;
            try {
                binding = mContext.bindServiceAsUser(intent, this,
                        Context.BIND_AUTO_CREATE | Context.BIND_NOT_FOREGROUND
                        | Context.BIND_NOT_VISIBLE | Context.BIND_ADJUST_BELOW_PERCEPTIBLE,
                        new UserHandle(job.getUserId()));
            } catch (SecurityException e) {
                // Some permission policy, for example INTERACT_ACROSS_USERS and
                // android:singleUser, can result in a SecurityException being thrown from
                // bindServiceAsUser().  If this happens, catch it and fail gracefully.
                Slog.w(TAG, "Job service " + job.getServiceComponent().getShortClassName()
                        + " cannot be executed: " + e.getMessage());
                binding = false;
            }
            if (!binding) {
                if (DEBUG) {
                    Slog.d(TAG, job.getServiceComponent().getShortClassName() + " unavailable.");