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

Commit 227595f0 authored by Andrei Onea's avatar Andrei Onea Committed by Andrei-Valentin Onea
Browse files

Add null checks for ConcurrentHashmap queries

Ensure all queries done in CompatChange are only done for non-null
package names.
The previous change broke several tests.

Bug: 200155796
Test: atest com.android.server.wm.DisplayAreaTest#testGetOrientation
Change-Id: I7fc9ccb45987e03f6f172a077303c25d5ae1ccf3
Merged-In: I7fc9ccb45987e03f6f172a077303c25d5ae1ccf3
(cherry picked from commit 8596dd12)
parent 2044a05a
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -183,14 +183,15 @@ public final class CompatChange extends CompatibilityChangeInfo {
     */
    synchronized boolean recheckOverride(String packageName, OverrideAllowedState allowedState,
            @Nullable Long versionCode) {
        if (packageName == null) {
            return false;
        }
        boolean allowed = (allowedState.state == OverrideAllowedState.ALLOWED);

        // If the app is not installed or no longer has raw overrides, evaluate to false
        if (versionCode == null || !mRawOverrides.containsKey(packageName) || !allowed) {
            removePackageOverrideInternal(packageName);
            return false;
        }

        // Evaluate the override based on its version
        int overrideValue = mRawOverrides.get(packageName).evaluate(versionCode);
        switch (overrideValue) {
@@ -266,6 +267,9 @@ public final class CompatChange extends CompatibilityChangeInfo {
     * @return {@code true} if the change should be enabled for the package.
     */
    boolean willBeEnabled(String packageName) {
        if (packageName == null) {
            return defaultValue();
        }
        final PackageOverride override = mRawOverrides.get(packageName);
        if (override != null) {
            switch (override.evaluateForAllVersions()) {