From 3f163d29a47b2c16fe90618cac2a9d9c19e3765c Mon Sep 17 00:00:00 2001 From: Jenn Magder Date: Wed, 3 Feb 2021 11:01:03 -0800 Subject: [PATCH] Return an empty FlutterViews list when the service disappears (#75301) --- packages/flutter_tools/lib/src/vmservice.dart | 5 ++++- .../flutter_tools/test/general.shard/vmservice_test.dart | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index a0760316fb1..748f98b0581 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart @@ -779,7 +779,10 @@ extension FlutterVmService on vm_service.VmService { kListViewsMethod, ); if (response == null) { - return null; + // The service may have disappeared mid-request. + // Return an empty list now, and let the shutdown logic elsewhere deal + // with cleaning up. + return []; } final List rawViews = response.json['views'] as List; final List views = [ diff --git a/packages/flutter_tools/test/general.shard/vmservice_test.dart b/packages/flutter_tools/test/general.shard/vmservice_test.dart index 4cf403c1a35..cdf51571659 100644 --- a/packages/flutter_tools/test/general.shard/vmservice_test.dart +++ b/packages/flutter_tools/test/general.shard/vmservice_test.dart @@ -356,7 +356,7 @@ void main() { expect(skSLs, isNull); final List views = await fakeVmServiceHost.vmService.getFlutterViews(); - expect(views, isNull); + expect(views, isEmpty); final vm_service.Response screenshot = await fakeVmServiceHost.vmService.screenshot(); expect(screenshot, isNull);