Fixes NPE and adds @Nullable to PackageSetting.pkg

This change addresses an NPE encountered when a package setting refers
to an unavailable package and is thus null. It adds a @Nullable
annotation to the field to hopefully catch more of this type of error
going forward.

Fixes: 153007501
Test: atest AppEnumerationTests PackageManagerTest
Change-Id: I0ffe1f488d69d45893c96c755e48e19de43fcdf2
This commit is contained in:
Patrick Baumann
2020-04-01 14:10:04 -07:00
parent 3dfc45e593
commit 74860927b9
2 changed files with 5 additions and 2 deletions

View File

@@ -674,7 +674,8 @@ public class AppsFilter {
Trace.endSection();
if (callingPkgSetting != null) {
if (!mFeatureConfig.packageIsEnabled(callingPkgSetting.pkg)) {
if (callingPkgSetting.pkg != null
&& !mFeatureConfig.packageIsEnabled(callingPkgSetting.pkg)) {
if (DEBUG_LOGGING) {
log(callingSetting, targetPkgSetting, "DISABLED");
}
@@ -682,7 +683,8 @@ public class AppsFilter {
}
} else {
for (int i = callingSharedPkgSettings.size() - 1; i >= 0; i--) {
if (!mFeatureConfig.packageIsEnabled(callingSharedPkgSettings.valueAt(i).pkg)) {
final AndroidPackage pkg = callingSharedPkgSettings.valueAt(i).pkg;
if (pkg != null && !mFeatureConfig.packageIsEnabled(pkg)) {
if (DEBUG_LOGGING) {
log(callingSetting, targetPkgSetting, "DISABLED");
}

View File

@@ -43,6 +43,7 @@ import java.util.Set;
public class PackageSetting extends PackageSettingBase {
int appId;
@Nullable
public AndroidPackage pkg;
/**
* WARNING. The object reference is important. We perform integer equality and NOT