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

Commit feaa25f8 authored by Shreya Singh's avatar Shreya Singh Committed by Android (Google) Code Review
Browse files

Merge "Log exceptions of illegal provisioning state transitions" into main

parents 49f95e2f 7b725c49
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -323,3 +323,13 @@ flag {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
  name: "user_provisioning_same_state"
  namespace: "enterprise"
  description: "Handle exceptions while setting same provisioning state."
  bug: "326441417"
  metadata {
    purpose: PURPOSE_BUGFIX
  }
}
+14 −2
Original line number Diff line number Diff line
@@ -10625,8 +10625,16 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                final DevicePolicyData policyData = getUserData(userId);
                if (transitionCheckNeeded) {
                    // Optional state transition check for non-ADB case.
                    checkUserProvisioningStateTransition(policyData.mUserProvisioningState,
                    try {
                        checkUserProvisioningStateTransition(
                                policyData.mUserProvisioningState,
                                newState);
                    } catch (IllegalStateException e) {
                        Slogf.e(LOG_TAG,
                                "Exception caught while changing provisioning state", e);
                        throw e;
                    }
                }
                policyData.mUserProvisioningState = newState;
                saveSettingsLocked(userId);
@@ -10637,6 +10645,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
    }
    private void checkUserProvisioningStateTransition(int currentState, int newState) {
        if (Flags.userProvisioningSameState()) {
            Preconditions.checkState(newState != currentState, "New state cannot"
                    + " be the same as the current state: [" + newState + "]");
        }
        // Valid transitions for normal use-cases.
        switch (currentState) {
            case DevicePolicyManager.STATE_USER_UNMANAGED: