diff --git a/sdk/lib/_http/http_parser.dart b/sdk/lib/_http/http_parser.dart index b82bac397d2..76df103aae1 100644 --- a/sdk/lib/_http/http_parser.dart +++ b/sdk/lib/_http/http_parser.dart @@ -195,9 +195,9 @@ class _HttpDetachedIncoming extends Stream { return _HttpDetachedStreamSubscription(subscription, bufferedData, onData) ..resume(); } else { - // TODO(26379): add test for this branch. - return Stream.fromIterable([bufferedData!]).listen(onData, - onError: onError, onDone: onDone, cancelOnError: cancelOnError); + return Stream.fromIterable([bufferedData ?? Uint8List(0)]) + .listen(onData, + onError: onError, onDone: onDone, cancelOnError: cancelOnError); } } } diff --git a/tests/standalone/io/http_parser_header_add_test.dart b/tests/standalone/io/http_parser_header_add_test.dart index 4fdf602886d..9645ff025e4 100644 --- a/tests/standalone/io/http_parser_header_add_test.dart +++ b/tests/standalone/io/http_parser_header_add_test.dart @@ -7,9 +7,13 @@ import "dart:async"; import "dart:io"; +// ignore: IMPORT_INTERNAL_LIBRARY +import "dart:_http" show TestingClass$_HttpHeaders, TestingClass$_HttpParser; import "package:async_helper/async_helper.dart"; import "package:expect/expect.dart"; +typedef _HttpParser = TestingClass$_HttpParser; + Future testFormatException() async { final server = await HttpServer.bind("127.0.0.1", 0); server.listen((HttpRequest request) { @@ -28,6 +32,12 @@ Future testFormatException() async { } } +void testNullSubscriptionData() { + _HttpParser httpParser = new _HttpParser.requestParser(); + httpParser.detachIncoming().listen((data) {}, onDone: () {}); +} + main() { asyncTest(testFormatException); + testNullSubscriptionData(); }