-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
P2A bug or feature request we're likely to work onA bug or feature request we're likely to work onarea-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.triagedIssue has been triaged by sub teamIssue has been triaged by sub teamtype-bugIncorrect behavior (everything from a crash to more subtle misbehavior)Incorrect behavior (everything from a crash to more subtle misbehavior)
Description
When servicing the following code, it'll throw an exception, Latin1Codec.encode. Looks like the encoding is not used properly
It happens only in Dart 3.6.0. It works fine with 3.5.x.
import "dart:io";
void main() {
HttpServer
.bind(InternetAddress.anyIPv4, 8081)
.then((server) {
server.autoCompress = true;
server.listen((request) {
request.response
..headers.contentType = ContentType("text", "plain", charset: "utf-8")
..writeln('日本語')
..close();
});
});
}
The stack trace:
Invalid argument (string): Contains invalid characters.: "日本語\n"
#0 _UnicodeSubsetEncoder.convert (dart:convert/ascii.dart:85:9)
#1 Latin1Codec.encode (dart:convert/latin1.dart:40:46)
#2 _IOSinkImpl._writeString (dart:_http/http_impl.dart:1064:21)
#3 _IOSinkImpl.writeln (dart:_http/http_impl.dart:1090:5)
#4 main.<anonymous closure>.<anonymous closure> (file:///Users/tomyeh/prj/boeneo/server/test/20807.dart:13:11)
#5 _RootZone.runUnaryGuarded (dart:async/zone.dart:1609:10)
#6 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:366:11)
#7 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:297:7)
#8 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:777:19)
#9 _StreamController._add (dart:async/stream_controller.dart:651:7)
#10 _StreamController.add (dart:async/stream_controller.dart:606:5)
#11 _HttpServer._handleRequest (dart:_http/http_impl.dart:3339:19)
#12 new _HttpConnection.<anonymous closure> (dart:_http/http_impl.dart:3123:19)
#13 _RootZone.runUnaryGuarded (dart:async/zone.dart:1609:10)
#14 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:366:11)
#15 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:297:7)
#16 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:777:19)
#17 _StreamController._add (dart:async/stream_controller.dart:651:7)
#18 _StreamController.add (dart:async/stream_controller.dart:606:5)
#19 _HttpParser._headersEnd (dart:_http/http_parser.dart:390:19)
#20 _HttpParser._doParse (dart:_http/http_parser.dart:759:15)
#21 _HttpParser._parse (dart:_http/http_parser.dart:320:7)
#22 _HttpParser._onData (dart:_http/http_parser.dart:887:5)
#23 _RootZone.runUnaryGuarded (dart:async/zone.dart:1609:10)
#24 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:366:11)
#25 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:297:7)
#26 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:777:19)
#27 _StreamController._add (dart:async/stream_controller.dart:651:7)
#28 _StreamController.add (dart:async/stream_controller.dart:606:5)
#29 _Socket._onData (dart:io-patch/socket_patch.dart:2455:41)
#30 _RootZone.runUnaryGuarded (dart:async/zone.dart:1609:10)
#31 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:366:11)
#32 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:297:7)
#33 _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:777:19)
#34 _StreamController._add (dart:async/stream_controller.dart:651:7)
#35 _StreamController.add (dart:async/stream_controller.dart:606:5)
#36 new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1942:33)
#37 _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:1385:14)
#38 _microtaskLoop (dart:async/schedule_microtask.dart:40:21)
#39 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49:5)
#40 _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
#41 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:185:5)
Metadata
Metadata
Assignees
Labels
P2A bug or feature request we're likely to work onA bug or feature request we're likely to work onarea-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.triagedIssue has been triaged by sub teamIssue has been triaged by sub teamtype-bugIncorrect behavior (everything from a crash to more subtle misbehavior)Incorrect behavior (everything from a crash to more subtle misbehavior)