[ https://issues.apache.org/jira/browse/CXF-9059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andriy Redko updated CXF-9059: ------------------------------ Fix Version/s: 3.6.5 > HttpConduit should flush output stream ahead of closing connections when > HttpClient is autocloseable > ---------------------------------------------------------------------------------------------------- > > Key: CXF-9059 > URL: https://issues.apache.org/jira/browse/CXF-9059 > Project: CXF > Issue Type: Improvement > Components: JAX-RS > Affects Versions: 4.0.5, 3.6.4 > Reporter: Jamie Mark Goodyear > Priority: Major > Fix For: 4.1.0, 3.6.5, 4.0.6 > > > HttpConduit should flush output stream ahead of closing connections when > HttpClient is autocloseable. > When running WebClient in a load test (single host) we'll observe low > throughput. > When we adjust the HttpConduit to flush output stream ahead of connection > close, we observe significant throughput improvement. > The key issue being addressed here is ephemeral port usage. Once all > available ports are in use, the clients are unable to send more messages. > Controlling ephemeral port usage means the client can more often send > messages to the server-side. > Given this appears to affect just autocloseable HttpClient, we select to > flush the output stead only when the JVM provides the autocloseable > HttpClient variety. > > AbstractConduit: > finally { > OutputStream os = msg.getContent(OutputStream.class); > // Java 21 may hang on close, we flush stream to help close them out. > if (os != null && AutoCloseable.class.isAssignableFrom(HttpClient.class)) > {. os.flush(); } > super.close(msg); > } > -- This message was sent by Atlassian Jira (v8.20.10#820010)