Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Unified Diff: runtime/vm/service/vmservice.dart

Issue 1297313005: Fix the error response for bad isolate ids, etc. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/service/running_isolates.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/service/vmservice.dart
diff --git a/runtime/vm/service/vmservice.dart b/runtime/vm/service/vmservice.dart
index 2be15b627b12c1db5503c292dd6737673fa35102..4c12cdb1105e398fcef1fec59f6054aae7679f61 100644
--- a/runtime/vm/service/vmservice.dart
+++ b/runtime/vm/service/vmservice.dart
@@ -21,6 +21,36 @@ final RawReceivePort scriptLoadPort = new RawReceivePort();
typedef ShutdownCallback();
+// These must be kept in sync with the declarations in vm/json_stream.h.
+const kInvalidParams = -32602;
+const kInternalError = -32603;
+const kStreamAlreadySubscribed = 103;
+const kStreamNotSubscribed = 104;
+
+var _errorMessages = {
+ kInvalidParams: 'Invalid params',
+ kInternalError: 'Internal error',
+ kStreamAlreadySubscribed: 'Stream already subscribed',
+ kStreamNotSubscribed: 'Stream not subscribed',
+};
+
+String encodeRpcError(Message message, int code, {String details}) {
+ var response = {
+ 'jsonrpc': '2.0',
+ 'id' : message.serial,
+ 'error' : {
+ 'code': code,
+ 'message': _errorMessages[code],
+ },
+ };
+ if (details != null) {
+ response['error']['data'] = {
+ 'details': details,
+ };
+ }
+ return JSON.encode(response);
+}
+
class VMService extends MessageRouter {
static VMService _instance;
@@ -143,34 +173,6 @@ class VMService extends MessageRouter {
message.setResponse(JSON.encode(result));
}
- // These must be kept in sync with the declarations in vm/json_stream.h.
- static const _kInvalidParams = -32602;
- static const _kStreamAlreadySubscribed = 103;
- static const _kStreamNotSubscribed = 104;
-
- var _errorMessages = {
- _kInvalidParams: 'Invalid params"',
- _kStreamAlreadySubscribed: 'Stream already subscribed',
- _kStreamNotSubscribed: 'Stream not subscribed',
- };
-
- String _encodeError(Message message, int code, {String details}) {
- var response = {
- 'jsonrpc': '2.0',
- 'id' : message.serial,
- 'error' : {
- 'code': code,
- 'message': _errorMessages[code],
- },
- };
- if (details != null) {
- response['error']['data'] = {
- 'details': details,
- };
- }
- return JSON.encode(response);
- }
-
String _encodeResult(Message message, Map result) {
var response = {
'jsonrpc': '2.0',
@@ -194,12 +196,12 @@ class VMService extends MessageRouter {
var streamId = message.params['streamId'];
if (client.streams.contains(streamId)) {
- return _encodeError(message, _kStreamAlreadySubscribed);
+ return encodeRpcError(message, kStreamAlreadySubscribed);
}
if (!_isAnyClientSubscribed(streamId)) {
if (!_vmListenStream(streamId)) {
- return _encodeError(
- message, _kInvalidParams,
+ return encodeRpcError(
+ message, kInvalidParams,
details:"streamListen: invalid 'streamId' parameter: ${streamId}");
}
}
@@ -214,7 +216,7 @@ class VMService extends MessageRouter {
var streamId = message.params['streamId'];
if (!client.streams.contains(streamId)) {
- return _encodeError(message, _kStreamNotSubscribed);
+ return encodeRpcError(message, kStreamNotSubscribed);
}
client.streams.remove(streamId);
if (!_isAnyClientSubscribed(streamId)) {
« no previous file with comments | « runtime/vm/service/running_isolates.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698