[jira] [Commented] (HTTPCLIENT-1857) HttpClient falsely closes a reusable connection

2017-06-19 Thread Rodolfo Udo Labsch (JIRA)

[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16055021#comment-16055021
 ] 

Rodolfo Udo Labsch commented on HTTPCLIENT-1857:


[~olegk],

Suppose we cut reading the InputStream in the middle, the following should 
happend:
- close the response object.
- The pool receives back the connection
- The pool checks if the inputstream was read all the way to the end
- if yes, throw away the not used buffer, i.e. read the stream all the way to 
the end but not using any bytes on it.

If after all of this the server stilll holds any state, we do have a defective 
server since HTTP should not work that way.
And like I said, the unused body should be ignored and thrown away, so that we 
may reuse the connection.
And once again, I do not know if it was implemented this way, but seems the 
most logical operating mode to me.

> HttpClient falsely closes a reusable connection
> ---
>
> Key: HTTPCLIENT-1857
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1857
> Project: HttpComponents HttpClient
>  Issue Type: Bug
>Reporter: Rodolfo Udo Labsch
> Attachments: ConnectionHolder.patch
>
>
> If you create a code with a reusable httpclient and then call execute as in 
> the example with the following code. The http connection will be falsely 
> closed.
> {code:java}
> private PoolingHttpClientConnectionManager connectionManager = new 
> PoolingHttpClientConnectionManager();
> httpClient = HttpClients.custom()
> .setConnectionManager(connectionManager)
> .build();
> try (CloseableHttpResponse response = httpClient.execute(new 
> HttpGet(enetLink), context)) {
> .
> }
> {code}
> The reason being that we have:
> {code:java}
> CloseableHttpResponse:
> public void close() throws IOException {
> if (this.connHolder != null) {
> this.connHolder.close();
> }
> }
> ConnectionHolder:
> public void close() throws IOException {
> releaseConnection(false);
> }
> {code}
> Just created the correction, which is attached as patch.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org



[jira] [Commented] (HTTPCLIENT-1857) HttpClient falsely closes a reusable connection

2017-06-19 Thread Oleg Kalnichevski (JIRA)

[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16053555#comment-16053555
 ] 

Oleg Kalnichevski commented on HTTPCLIENT-1857:
---

bq. the content should actually be ignored but the connection should still be 
reusable

If the remaining content is simply ignored the next message request / response 
exchange will not be properly delineated as the connection will still hold bits 
of the previous response body.

Oleg

> HttpClient falsely closes a reusable connection
> ---
>
> Key: HTTPCLIENT-1857
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1857
> Project: HttpComponents HttpClient
>  Issue Type: Bug
>Reporter: Rodolfo Udo Labsch
> Attachments: ConnectionHolder.patch
>
>
> If you create a code with a reusable httpclient and then call execute as in 
> the example with the following code. The http connection will be falsely 
> closed.
> {code:java}
> private PoolingHttpClientConnectionManager connectionManager = new 
> PoolingHttpClientConnectionManager();
> httpClient = HttpClients.custom()
> .setConnectionManager(connectionManager)
> .build();
> try (CloseableHttpResponse response = httpClient.execute(new 
> HttpGet(enetLink), context)) {
> .
> }
> {code}
> The reason being that we have:
> {code:java}
> CloseableHttpResponse:
> public void close() throws IOException {
> if (this.connHolder != null) {
> this.connHolder.close();
> }
> }
> ConnectionHolder:
> public void close() throws IOException {
> releaseConnection(false);
> }
> {code}
> Just created the correction, which is attached as patch.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org



[jira] [Commented] (HTTPCLIENT-1857) HttpClient falsely closes a reusable connection

2017-06-18 Thread Rodolfo Udo Labsch (JIRA)

[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16053353#comment-16053353
 ] 

Rodolfo Udo Labsch commented on HTTPCLIENT-1857:


Hello [~olegk],

If we are closing a response even after not consuming or partially consuming an 
entity, the content should actually be ignored but the connection should still 
be reusable, hence the connection should go back pristine to the pool.

I did not check the code if this is done, but that would be the most logical 
imo for a pooled Connection.

> HttpClient falsely closes a reusable connection
> ---
>
> Key: HTTPCLIENT-1857
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1857
> Project: HttpComponents HttpClient
>  Issue Type: Bug
>Reporter: Rodolfo Udo Labsch
> Attachments: ConnectionHolder.patch
>
>
> If you create a code with a reusable httpclient and then call execute as in 
> the example with the following code. The http connection will be falsely 
> closed.
> {code:java}
> private PoolingHttpClientConnectionManager connectionManager = new 
> PoolingHttpClientConnectionManager();
> httpClient = HttpClients.custom()
> .setConnectionManager(connectionManager)
> .build();
> try (CloseableHttpResponse response = httpClient.execute(new 
> HttpGet(enetLink), context)) {
> .
> }
> {code}
> The reason being that we have:
> {code:java}
> CloseableHttpResponse:
> public void close() throws IOException {
> if (this.connHolder != null) {
> this.connHolder.close();
> }
> }
> ConnectionHolder:
> public void close() throws IOException {
> releaseConnection(false);
> }
> {code}
> Just created the correction, which is attached as patch.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org



[jira] [Commented] (HTTPCLIENT-1857) HttpClient falsely closes a reusable connection

2017-06-18 Thread Oleg Kalnichevski (JIRA)

[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16053204#comment-16053204
 ] 

Oleg Kalnichevski commented on HTTPCLIENT-1857:
---

Rodolfo,
Are you sure this is the right thing to do? What should happen if the response 
entity content has not been consumed or partially consumed. Are you sure this 
is a good idea to re-use connections in such cases?

Oleg 

> HttpClient falsely closes a reusable connection
> ---
>
> Key: HTTPCLIENT-1857
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1857
> Project: HttpComponents HttpClient
>  Issue Type: Bug
>Reporter: Rodolfo Udo Labsch
> Attachments: ConnectionHolder.patch
>
>
> If you create a code with a reusable httpclient and then call execute as in 
> the example with the following code. The http connection will be falsely 
> closed.
> {code:java}
> private PoolingHttpClientConnectionManager connectionManager = new 
> PoolingHttpClientConnectionManager();
> httpClient = HttpClients.custom()
> .setConnectionManager(connectionManager)
> .build();
> try (CloseableHttpResponse response = httpClient.execute(new 
> HttpGet(enetLink), context)) {
> .
> }
> {code}
> The reason being that we have:
> {code:java}
> CloseableHttpResponse:
> public void close() throws IOException {
> if (this.connHolder != null) {
> this.connHolder.close();
> }
> }
> ConnectionHolder:
> public void close() throws IOException {
> releaseConnection(false);
> }
> {code}
> Just created the correction, which is attached as patch.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

-
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org