RFR: 7199862: Make sure that a connection is still alive when retrieved from KeepAliveCache in certain cases
Chris Hegarty
chris.hegarty at oracle.com
Tue Sep 25 03:17:09 PDT 2012
Hi Rob,
Since you have limited the scope of the available() call to just
requests that cannot be automatically retried (streaming POSTs), then I
think this change is fine, and a useful addition.
The source changes are mainly fine, just a few minor comments...
- HttpClient.available()
maybe you should throw IOException("Unexpected data on socket"), if
the short timed read actually reads any data, i.e. if socket timeout
exception is not thrown, or EOF reached.
- Trivially, can you adjust the indentation of multi-arg methods in
HttpClient, e.g.
public static HttpClient New(URL url, Proxy p, int to,
HttpURLConnection httpuc)
throws IOException
{
}
Thanks,
-Chris.
On 20/09/12 16:26, Rob McKenna wrote:
> Hi folks,
>
> This one is connected to 7199219 and has an intersecting change in that
> we're similarly passing the httpuc from HttpURLConnection. Despite the
> intersection I've filed these as two separate issues because a) they are
> and b) I wouldn't like one to be held up by the other.
>
> The problem here is that for a specific type of request (streaming POST)
> we don't have the option of retrying the request if there is an issue
> with the connection. A customer has run into a problem where their proxy
> was unilaterally deciding when to close connections (without paying
> attention to the servers keep-alive timeout) earlier than our
> KeepAliveCache expected. In this case our POST would fail with odd http
> response codes.
>
> http://cr.openjdk.java.net/~robm/7199862/8/webrev.01/
> <http://cr.openjdk.java.net/%7Erobm/7199862/8/webrev.01/>
>
> -Rob
More information about the net-dev
mailing list