| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analysis.server; | 5 library analysis.server; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 import 'dart:core' hide Resource; | 9 import 'dart:core' hide Resource; |
| 10 import 'dart:math' show max; | 10 import 'dart:math' show max; |
| (...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 885 /** | 885 /** |
| 886 * Send the given [response] to the client. | 886 * Send the given [response] to the client. |
| 887 */ | 887 */ |
| 888 void sendResponse(Response response) { | 888 void sendResponse(Response response) { |
| 889 channel.sendResponse(response); | 889 channel.sendResponse(response); |
| 890 } | 890 } |
| 891 | 891 |
| 892 /** | 892 /** |
| 893 * Sends a `server.error` notification. | 893 * Sends a `server.error` notification. |
| 894 */ | 894 */ |
| 895 void sendServerErrorNotification(String msg, exception, stackTrace, | 895 void sendServerErrorNotification(String message, exception, stackTrace, |
| 896 {bool fatal: false}) { | 896 {bool fatal: false}) { |
| 897 // prepare exception.toString() | 897 StringBuffer buffer = new StringBuffer(); |
| 898 String exceptionString; | |
| 899 if (exception != null) { | 898 if (exception != null) { |
| 900 exceptionString = exception.toString(); | 899 buffer.write(exception); |
| 901 } else { | 900 } else { |
| 902 exceptionString = 'null exception'; | 901 buffer.write('null exception'); |
| 903 } | 902 } |
| 904 // prepare message | |
| 905 String message = msg != null ? '$msg\n$exceptionString' : exceptionString; | |
| 906 // prepare stackTrace.toString() | |
| 907 String stackTraceString; | |
| 908 if (stackTrace != null) { | 903 if (stackTrace != null) { |
| 909 stackTraceString = stackTrace.toString(); | 904 buffer.writeln(); |
| 910 } else { | 905 buffer.write(stackTrace); |
| 906 } else if (exception is! CaughtException) { |
| 911 try { | 907 try { |
| 912 throw 'ignored'; | 908 throw 'ignored'; |
| 913 } catch (ignored, stackTrace) { | 909 } catch (ignored, stackTrace) { |
| 914 stackTraceString = stackTrace.toString(); | 910 buffer.writeln(); |
| 915 } | 911 buffer.write(stackTrace); |
| 916 if (stackTraceString == null) { | |
| 917 // This code should be unreachable. | |
| 918 stackTraceString = 'null stackTrace'; | |
| 919 } | 912 } |
| 920 } | 913 } |
| 921 // send the notification | 914 // send the notification |
| 922 channel.sendNotification( | 915 channel.sendNotification( |
| 923 new ServerErrorParams(fatal, message, stackTraceString) | 916 new ServerErrorParams(fatal, message, buffer.toString()) |
| 924 .toNotification()); | 917 .toNotification()); |
| 925 } | 918 } |
| 926 | 919 |
| 927 /** | 920 /** |
| 928 * Send status notification to the client. The `operation` is the operation | 921 * Send status notification to the client. The `operation` is the operation |
| 929 * being performed or `null` if analysis is complete. | 922 * being performed or `null` if analysis is complete. |
| 930 */ | 923 */ |
| 931 void sendStatusNotification(ServerOperation operation) { | 924 void sendStatusNotification(ServerOperation operation) { |
| 932 // Only send status when subscribed. | 925 // Only send status when subscribed. |
| 933 if (!serverServices.contains(ServerService.STATUS)) { | 926 if (!serverServices.contains(ServerService.STATUS)) { |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1674 /** | 1667 /** |
| 1675 * The [PerformanceTag] for time spent in server request handlers. | 1668 * The [PerformanceTag] for time spent in server request handlers. |
| 1676 */ | 1669 */ |
| 1677 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); | 1670 static PerformanceTag serverRequests = new PerformanceTag('serverRequests'); |
| 1678 | 1671 |
| 1679 /** | 1672 /** |
| 1680 * The [PerformanceTag] for time spent in split store microtasks. | 1673 * The [PerformanceTag] for time spent in split store microtasks. |
| 1681 */ | 1674 */ |
| 1682 static PerformanceTag splitStore = new PerformanceTag('splitStore'); | 1675 static PerformanceTag splitStore = new PerformanceTag('splitStore'); |
| 1683 } | 1676 } |
| OLD | NEW |