fix NullPointerException in RemoteAndroidVirtualDevice.getDeviceDescriptor

I saw the following exception when running a test.

  java.lang.NullPointerException: Cannot invoke "com.android.tradefed.command.remote.DeviceDescriptor.getSerial()" because "descriptor" is null
      at com.android.tradefed.device.cloud.RemoteAndroidVirtualDevice.getDeviceDescriptor(RemoteAndroidVirtualDevice.java:76)
      at com.android.tradefed.device.NativeDevice.getDeviceDescriptor(NativeDevice.java:5414)
      at com.android.tradefed.device.connection.AdbSshConnection.restoreSnapshotGce(AdbSshConnection.java:807)
      at com.android.tradefed.device.internal.DeviceSnapshotFeature.restoreSnapshotGce(DeviceSnapshotFeature.java:238)
      at com.android.tradefed.device.internal.DeviceSnapshotFeature.restoreSnapshot(DeviceSnapshotFeature.java:190)
      at com.android.tradefed.device.internal.DeviceSnapshotFeature.execute(DeviceSnapshotFeature.java:109)
      at com.android.tradefed.service.TradefedFeatureServer.createResponse(TradefedFeatureServer.java:186)
      at com.android.tradefed.service.TradefedFeatureServer.triggerFeature(TradefedFeatureServer.java:115)
      at com.proto.tradefed.feature.TradefedInformationGrpc$MethodHandlers.invoke(TradefedInformationGrpc.java:228)
      at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
      at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:346)
      at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:860)
      at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
      at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
      at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      at java.base/java.lang.Thread.run(Thread.java:833)

Test: m tradefed
Change-Id: I1f431db6736c5ea9048c7fcac90ac116f47c7a37
diff --git a/src/com/android/tradefed/device/cloud/RemoteAndroidVirtualDevice.java b/src/com/android/tradefed/device/cloud/RemoteAndroidVirtualDevice.java
index 95a037a..8ecaef4 100644
--- a/src/com/android/tradefed/device/cloud/RemoteAndroidVirtualDevice.java
+++ b/src/com/android/tradefed/device/cloud/RemoteAndroidVirtualDevice.java
@@ -71,7 +71,7 @@
     @Override
     public DeviceDescriptor getDeviceDescriptor(boolean shortDescriptor) {
         DeviceDescriptor descriptor = super.getDeviceDescriptor(shortDescriptor);
-        if (getConnection() instanceof DefaultConnection) {
+        if (descriptor != null && getConnection() instanceof DefaultConnection) {
             String initialSerial = ((DefaultConnection) getConnection()).getInitialSerial();
             if (!initialSerial.equals(descriptor.getSerial())) {
                 // Alter the display for the console.