[automerger skipped] DO NOT MERGE - Merge pie-platform-release (PPRL.181205.001) into stage-aosp-master
am: 31b42740be  -s ours

Change-Id: Iecd9e2eb77007f27fe611714c9de195837581464
diff --git a/car-lib/src/android/car/vms/VmsSubscriberManager.java b/car-lib/src/android/car/vms/VmsSubscriberManager.java
index fe9e8c3..1416b41 100644
--- a/car-lib/src/android/car/vms/VmsSubscriberManager.java
+++ b/car-lib/src/android/car/vms/VmsSubscriberManager.java
@@ -155,11 +155,11 @@
         } catch (RemoteException e) {
             Log.e(TAG, "Could not connect: ", e);
             throw new CarNotConnectedException(e);
-        }
-
-        synchronized (mClientCallbackLock) {
-            mClientCallback = null;
-            mExecutor = null;
+        } finally {
+            synchronized (mClientCallbackLock) {
+                mClientCallback = null;
+                mExecutor = null;
+            }
         }
     }
 
diff --git a/car_product/build/car_base.mk b/car_product/build/car_base.mk
index bd5f9cd..2f3bbaa 100644
--- a/car_product/build/car_base.mk
+++ b/car_product/build/car_base.mk
@@ -42,6 +42,7 @@
     MmsService \
     ExternalStorageProvider \
     atrace \
+    cameraserver \
     libandroidfw \
     libaudioutils \
     libmdnssd \
diff --git a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
index a82350b..d1b92dc 100644
--- a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
+++ b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
@@ -84,6 +84,14 @@
         @Override
         public void onDisconnected(Car car) {
             Log.d(TAG, "Disconnect from Car Service");
+            if (mVmsSubscriberManager != null) {
+                try {
+                    mVmsSubscriberManager.clearVmsSubscriberClientCallback();
+                    mVmsSubscriberManager.unsubscribe(TEST_LAYER);
+                } catch (android.car.CarNotConnectedException e) {
+                    Log.e(TAG, "Car is not connected!", e);
+                }
+            }
         }
 
         private VmsSubscriberManager getVmsSubscriberManager() {