You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The request writing side is using Jetty's ContentChunk callbacks to release the input DataBuffer. However the use of flatMap from writeAndFlushWith could prefetch and requires a Flux#onDiscard hook.
Sébastien Deleuze, as far I can see for the response side, at present Jetty simply wraps a byte array along with a NoOp callback to release. That means there isn't much use in us calling succeeded() so couldn't we spare ourselves the copying and simply wrap the byte[] for now? Or if we want to support releasing, we should implement a JettyDataBuffer that works like DefaultDataBuffer and calls the ContentChunk callbacks on release.
We are simply wrapping byte array because the Jetty HttpClient uses callback.succeed() to perform 2 things: recycle the buffer and request more content (similar to RS request(1)). The fact that these 2 operations are done at the same time is a blocking issue for us when we want to create a composite buffer for example. They plan to fix this at some point, but not yet done see jetty/jetty.project#2429.
Rossen Stoyanchev opened SPR-17424 and commented
The request writing side is using Jetty's
ContentChunk
callbacks to release the inputDataBuffer
. However the use offlatMap
fromwriteAndFlushWith
could prefetch and requires aFlux#onDiscard
hook.Affects: 5.1.1
This issue is a sub-task of #21941
The text was updated successfully, but these errors were encountered: