Skip to content

Commit b695fc2

Browse files
wuayeewuayee
andauthored
[fit] keep NettyResponse from closing prematurely (#266)
Co-authored-by: wuayee <[email protected]>
1 parent 7a50009 commit b695fc2

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

framework/fit/java/fit-builtin/plugins/fit-http-server-netty/src/main/java/modelengine/fit/http/server/netty/HttpClassicRequestAssembler.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,11 @@ private void handleHttpRequest(ChannelHandlerContext ctx, HttpRequest request) {
164164
private void doHttpRequest(ChannelHandlerContext ctx, NettyHttpServerRequest request) {
165165
request.setExecuteThread(Thread.currentThread());
166166
try (HttpClassicServerRequest classicRequest = HttpClassicServerRequest.create(this.server, request);
167-
NettyHttpServerResponse response = new NettyHttpServerResponse(ctx, request);
168-
HttpClassicServerResponse classicResponse = HttpClassicServerResponse.create(this.server, response)) {
167+
// Inline Netty response creation to avoid it being managed as a separate
168+
// try-with-resources variable. This prevents premature closure at the end
169+
// of the try block, which would cause write failures when SSE sends data.
170+
HttpClassicServerResponse classicResponse = HttpClassicServerResponse.create(this.server,
171+
new NettyHttpServerResponse(ctx, request))) {
169172
HttpHandler handler = this.server.httpDispatcher().dispatch(classicRequest, classicResponse);
170173
classicRequest.attributes().set(PATH_PATTERN.key(), handler.pathPattern());
171174
classicRequest.attributes().set(HTTP_HANDLER.key(), handler);

0 commit comments

Comments
 (0)