Skip to content

Commit 29b3e53

Browse files
committed
Remove duplicated stack trace from error notifications
[email protected] Review URL: https://codereview.chromium.org/1480663002 .
1 parent e94c820 commit 29b3e53

File tree

3 files changed

+14
-20
lines changed

3 files changed

+14
-20
lines changed

pkg/analysis_server/lib/src/analysis_logger.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ class AnalysisLogger implements Logger {
4343
} else {
4444
baseLogger.severe(message, exception.exception, exception.stackTrace);
4545
}
46-
server.sendServerErrorNotification(
47-
message, exception, exception?.stackTrace);
46+
server.sendServerErrorNotification(message, exception, null);
4847
}
4948

5049
@override

pkg/analysis_server/lib/src/analysis_server.dart

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -892,35 +892,28 @@ class AnalysisServer {
892892
/**
893893
* Sends a `server.error` notification.
894894
*/
895-
void sendServerErrorNotification(String msg, exception, stackTrace,
895+
void sendServerErrorNotification(String message, exception, stackTrace,
896896
{bool fatal: false}) {
897-
// prepare exception.toString()
898-
String exceptionString;
897+
StringBuffer buffer = new StringBuffer();
899898
if (exception != null) {
900-
exceptionString = exception.toString();
899+
buffer.write(exception);
901900
} else {
902-
exceptionString = 'null exception';
901+
buffer.write('null exception');
903902
}
904-
// prepare message
905-
String message = msg != null ? '$msg\n$exceptionString' : exceptionString;
906-
// prepare stackTrace.toString()
907-
String stackTraceString;
908903
if (stackTrace != null) {
909-
stackTraceString = stackTrace.toString();
910-
} else {
904+
buffer.writeln();
905+
buffer.write(stackTrace);
906+
} else if (exception is! CaughtException) {
911907
try {
912908
throw 'ignored';
913909
} catch (ignored, stackTrace) {
914-
stackTraceString = stackTrace.toString();
915-
}
916-
if (stackTraceString == null) {
917-
// This code should be unreachable.
918-
stackTraceString = 'null stackTrace';
910+
buffer.writeln();
911+
buffer.write(stackTrace);
919912
}
920913
}
921914
// send the notification
922915
channel.sendNotification(
923-
new ServerErrorParams(fatal, message, stackTraceString)
916+
new ServerErrorParams(fatal, message, buffer.toString())
924917
.toNotification());
925918
}
926919

pkg/analyzer/lib/src/generated/java_engine.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ class CaughtException implements Exception {
9797
}
9898
} else {
9999
buffer.writeln(exception.toString());
100-
buffer.writeln(stackTrace.toString());
100+
if (stackTrace != null) {
101+
buffer.writeln(stackTrace.toString());
102+
}
101103
}
102104
}
103105
}

0 commit comments

Comments
 (0)