Details
Description
This fix to org.mortbay.jetty.client.HttpConnection ensured that if close() was called with an Exchange outstanding,
the Exchange was notified immediately:
r5338 | janb | 2009-07-29 10:57:04 +1000 (Wed, 29 Jul 2009) | 2 lines
Ensure exception on close is reported to the Exchange if there is one.
That code appears to have been removed by this checkin:
r5636 | gregw | 2009-10-17 09:11:51 +1100 (Sat, 17 Oct 2009) | 6 lines
289221 HttpExchange does not timeout when using blocking connector
290761 HttpExchange.waitForDone()
291340 state==HEADER (Race condition in onException() notifications)
A use-case where this is a problem is the BayeuxClient. If the HttpClient that the BayeuxClient uses is stopped, and thus all the HttpConnections stopped, the BayeuxClient's log poll HttpExchange is not notified and hence does not detect the connect failure.
Note that if the entire HttpClient was not stopped, but rather a single HttpConnection is stopped, then eventually presumably the timeout would expire (default is 5mins) and the HttpExchange would be notified then.
The onException notification is call if a close happens on a connection with an exchange that has not completed.