I'm using tcp outbound gateway with client connection factory, that does not declare single-use attribute (so it means false by default). Thus it means that we use one connection and "each request is blocked until the previous response is received (or times out)".
Consider, that timeouts are default (10 sec afak) but the remote server needs 12 sec to respond. TcpOutboundGateway connected to Gateway over some transformers, so we have a java interface to some remote server over TCP. Alice and Bob call that interface in a quite same time. Alice's request goes first, Bob's request is blocked. Then timeout occures, Alice gets the TimeoutException on the java interface and Bob's request has been sent. Couple of seconds later the remote server will respond to Alice's request (it doesn't know about our 10 seconds timeout).
Will Bob get that response to Alice's request in this case?