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 8596dd12ca)
This commit is contained in:
Andrei Onea
2021-09-17 13:20:01 +00:00
committed by Andrei-Valentin Onea
parent 2044a05ad6
commit 227595f050

View File

@@ -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()) {