As we can see from httpclient-4.5.x quick start, "In order to ensure correct deallocation of system resources the user MUST call CloseableHttpResponse#close() from a finally clause."
But, lets check the code of HttpRequestBase#releaseConnection(). The annotation said "A convenience method to simplify migration from HttpClient 3.1 API. This method is equivalent to {@link #reset()}."
public abstract class HttpRequestBase extends AbstractExecutionAwareRequest
implements HttpUriRequest, Configurable {
......
/**
* A convenience method to simplify migration from HttpClient 3.1 API. This method is
* equivalent to {@link #reset()}.
*
* @since 4.2
*/
public void releaseConnection() {
reset();
}
....
}
I want to ask, now that we only need to call CloseableHttpResponse#close() from a finally clause to release resource, then what is HttpRequestBase#releaseConnection() used to? what AbstractExecutionAwareRequest#reset() is used to? When should we use HttpRequestBase#releaseConnection() or AbstractExecutionAwareRequest#reset().