Index: sdk/lib/_internal/pub/lib/src/safe_http_server.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/safe_http_server.dart b/sdk/lib/_internal/pub/lib/src/safe_http_server.dart |
index 63b7705a75c5f635cb7f4d08d81ab2cf5458e56c..ba6d8778f58847b1913b0b7a6a25ac1f7652cdfe 100644 |
--- a/sdk/lib/_internal/pub/lib/src/safe_http_server.dart |
+++ b/sdk/lib/_internal/pub/lib/src/safe_http_server.dart |
@@ -52,12 +52,12 @@ class SafeHttpServer extends StreamView<HttpRequest> implements HttpServer { |
HttpConnectionsInfo connectionsInfo() => _inner.connectionsInfo(); |
StreamSubscription<HttpRequest> listen(void onData(HttpRequest value), |
- {void onError(error), void onDone(), |
+ { Function onError, void onDone(), |
bool cancelOnError: false}) { |
var subscription; |
subscription = super.listen((request) { |
onData(new _HttpRequestWrapper(request)); |
- }, onError: (error) { |
+ }, onError: (error, [StackTrace stackTrace]) { |
// Ignore socket error 104, which is caused by a request being cancelled |
// before it writes any headers. There's no reason to care about such |
// requests. |
@@ -67,7 +67,13 @@ class SafeHttpServer extends StreamView<HttpRequest> implements HttpServer { |
// Manually handle cancelOnError so the above (ignored) errors don't |
// cause unsubscription. |
if (cancelOnError) subscription.cancel(); |
- if (onError != null) onError(error); |
+ if (onError != null) { |
+ if (onError is ZoneBinaryCallback) { |
Lasse Reichstein Nielsen
2013/10/04 08:45:17
Hmm, perhaps event make a helperFunction:
callOn
floitsch
2013/10/05 18:11:48
Will do inside dart:async.
|
+ onError(error, stackTrace); |
+ } else { |
+ onError(error); |
+ } |
+ } |
}, onDone: onDone); |
return subscription; |
} |