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

Commit bb8962e9 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

Change-Id: I373c3f71ad72720bd27993779e7ccb3b94af9032
parents d0f8cfca b15ce5ac
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.");