Description
Hello,
we discovered an issue that causes a deadlock with large payloads which exceed the chunk-length (that is used as buffer size for an PipedInputStream) when sending a message to a currently offline/not-available server.
Even when setting the ConnectionTimeout for the HTTPConduit to e.g., 1000ms, the timeout does not occur. (the ReceiveTimeout works as expected though)
The feature that introduced the new HttpClientHTTPConduit was CXF-8840 with commit 1e7169.
What was expected:
Any type of timeout-related exception.
What actually happened:
The thread runs into a deadlock.
How to reproduce:
Run org.apache.cxf.systest.dispatch.DispatchClientServerTest.testTimeout() and increase the payload of resources/GreetMeDocLiteralReq.xml (or use the attachment provided). The test will not terminate after the given timeout, the test will run indefinitely.
The PipedInputStream's read method was never called (server offline), hence the PipedOutputStream's write method can't continue to write the data -> Deadlock.
Regards,
Manuel