Fix NPE when running ActivityManagerServiceTest
Since ATM is not passed to WindowProcessController, NPE happened when trying to access mAtm.mGlobalLock
Add a null check to prevent this kind of NPE.
Test: atest ActivityManagerServiceTest
Change-Id: I813386adcd6eab5206a75c8bf56b0c26968b26c8
Fixes: 111651991
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index 86c5d4d..6832f0d 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -639,7 +639,8 @@
}
}
- ActivityTaskManagerService(Context context) {
+ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PACKAGE)
+ public ActivityTaskManagerService(Context context) {
mContext = context;
mFactoryTest = FactoryTest.getMode();
mSystemThread = ActivityThread.currentActivityThread();
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
index 767eb60..ea0e095 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerServiceTest.java
@@ -29,6 +29,8 @@
import static android.app.ActivityManager.PROCESS_STATE_TOP;
import static android.util.DebugUtils.valueToString;
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
import static com.android.server.am.ActivityManagerInternalTest.CustomThread;
import static com.android.server.am.ActivityManagerService.DISPATCH_UIDS_CHANGED_UI_MSG;
import static com.android.server.am.ActivityManagerService.Injector;
@@ -69,6 +71,7 @@
import androidx.test.filters.SmallTest;
import com.android.server.AppOpsService;
+import com.android.server.wm.ActivityTaskManagerService;
import org.junit.After;
import org.junit.Before;
@@ -109,7 +112,7 @@
UidRecord.CHANGE_ACTIVE
};
- @Mock private Context mContext;
+ private Context mContext = getInstrumentation().getTargetContext();
@Mock private AppOpsService mAppOpsService;
@Mock private PackageManager mPackageManager;
@@ -128,8 +131,8 @@
mInjector = new TestInjector();
mAms = new ActivityManagerService(mInjector);
mAms.mWaitForNetworkTimeoutMs = 2000;
-
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ mAms.mActivityTaskManager = new ActivityTaskManagerService(mContext);
+ mAms.mActivityTaskManager.initialize(null, null, mHandler.getLooper());
}
@After