Skip to content

WildflyClientOutputStream: END_STREAM not sent over HTTP/2 when request body fills exactly one buffer - #321

Closed
tadamski wants to merge 2 commits into
wildfly:mainfrom
tadamski:WEJBHTTP-161
Closed

tadamski wants to merge 2 commits into
wildfly:mainfrom
tadamski:WEJBHTTP-161

Conversation

@tadamski

Copy link
Copy Markdown
Contributor

…tion processor path for JDK 23+ compatibility
…fills exactly one buffer

In WildflyClientOutputStream.handleEvent, suspendWrites() and FLAG_WRITING
were cleared before the final flush() was attempted. If flush returned false
(deferred, normal under HTTP/2 with concurrent requests on a shared connection),
the retry mechanism was already disabled and the stream was silently abandoned,
causing the server to never receive END_STREAM and stall until timeout.

Defer suspendWrites() and clearing FLAG_WRITING until after a successful flush.
If flush returns false, return early keeping write callbacks active so the
listener retries when the channel becomes writable. This mirrors the handling
in the neighboring empty-buffer branch corrected in WEJBHTTP-45.
@ropalka

ropalka commented Oct 7, 2026

Copy link
Copy Markdown
Collaborator

Superseded by: #337

@ropalka ropalka closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants