summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andrei Onea <andreionea@google.com> 2021-09-17 13:20:01 +0000
committer Andrei-Valentin Onea <andreionea@google.com> 2021-09-20 12:44:07 +0000
commit227595f050cdf4906384cc337fe06497011bf644 (patch)
treefda3047ebf226d8fca648104e66b7f4c48699f22
parent2044a05ad6e2993f31811b42a437ec741075c7cd (diff)
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 8596dd12caa96fcc3ecb808d8d6285504323d74b)
-rw-r--r--services/core/java/com/android/server/compat/CompatChange.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/compat/CompatChange.java b/services/core/java/com/android/server/compat/CompatChange.java
index f6ba369de769..b5846b555747 100644
--- a/services/core/java/com/android/server/compat/CompatChange.java
+++ b/services/core/java/com/android/server/compat/CompatChange.java
@@ -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()) {