diff --git a/runtime/bin/vmservice/server.dart b/runtime/bin/vmservice/server.dart index fb272607f56..a0446ad222a 100644 --- a/runtime/bin/vmservice/server.dart +++ b/runtime/bin/vmservice/server.dart @@ -296,6 +296,12 @@ class Server { return; } + if (assets == null) { + request.response.headers.contentType = ContentType.TEXT; + request.response.write("This VM was built without the Observatory UI."); + request.response.close(); + return; + } Asset asset = assets[path]; if (asset != null) { // Serving up a static asset (e.g. .css, .html, .png). diff --git a/runtime/lib/vmservice_patch.dart b/runtime/lib/vmservice_patch.dart index fac7e6d67ad..2618e1b6a32 100644 --- a/runtime/lib/vmservice_patch.dart +++ b/runtime/lib/vmservice_patch.dart @@ -7,12 +7,12 @@ class Asset { /// Call to request assets from the embedder. @patch static HashMap request() { - HashMap assets = new HashMap(); Uint8List tarBytes = _requestAssets(); if (tarBytes == null) { - return assets; + return null; } List assetList = _decodeAssets(tarBytes); + HashMap assets = new HashMap(); for (int i = 0; i < assetList.length; i += 2) { var a = new Asset(assetList[i], assetList[i + 1]); assets[a.name] = a;