Socket timeouts are signalled as SocketTimeoutException. In case of a socket timeout there will be no more attempts to read from the input stream. Probably you mean end of stream condition, not a timeout?
There is basically no point fixing HttpClient 3.x, as it is nearing its end of life.
By looking at the code I do not think HttpClient 4.0 is affected. I believe the end of stream conditions are handled correctly. If you are able to reproduce the problem with HttpClient 4.0, feel free to submit a patch or a test case. Otherwise I'll close this issue as won't fix.