Merge "Fix NPE in AmbientContextManagerService."
diff --git a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java
index 7d9b272..a9a77bf 100644
--- a/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java
+++ b/services/core/java/com/android/server/ambientcontext/AmbientContextManagerService.java
@@ -593,16 +593,19 @@
                     Manifest.permission.ACCESS_AMBIENT_CONTEXT_EVENT, TAG);
             assertCalledByPackageOwner(callingPackage);
 
-            for (ClientRequest cr : mExistingClientRequests) {
-                if (cr.getPackageName().equals(callingPackage)) {
-                    AmbientContextManagerPerUserService service =
-                            getAmbientContextManagerPerUserServiceForEventTypes(
-                            UserHandle.getCallingUserId(), cr.getRequest().getEventTypes());
-                    if (service != null) {
-                        service.onUnregisterObserver(callingPackage);
-                    } else {
-                        Slog.w(TAG, "onUnregisterObserver unavailable user_id: "
-                                + UserHandle.getCallingUserId());
+            synchronized (mLock) {
+                for (ClientRequest cr : mExistingClientRequests) {
+                    if (cr.getPackageName().equals(callingPackage)) {
+                        AmbientContextManagerPerUserService service =
+                                getAmbientContextManagerPerUserServiceForEventTypes(
+                                        UserHandle.getCallingUserId(),
+                                        cr.getRequest().getEventTypes());
+                        if (service != null) {
+                            service.onUnregisterObserver(callingPackage);
+                        } else {
+                            Slog.w(TAG, "onUnregisterObserver unavailable user_id: "
+                                    + UserHandle.getCallingUserId());
+                        }
                     }
                 }
             }