[ 
https://issues.apache.org/jira/browse/HTTPCORE-235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12910202#action_12910202
 ] 

Steve Loughran commented on HTTPCORE-235:
-----------------------------------------

I didn't see an IOE, I saw that I was getting "" back even though the 
content-length was 54 octets. The root cause was my own - I was closing the 
connection before trying to get the data out of the response- but the whole 
problem wasn't surfacing in an exception, just an empty string.

I rewrote the code to do the download by creating a buffer of the exact size 
promised, doing a blocking read, and throwing an IOE if there was less data 
than promised or there was still some more data to come. Either state is an 
error, at least as far as I'm concerned, at least when the content-length 
header value >= 0

> EntityUtils.toString() doesn't detect/report less content being returned than 
> was promised
> ------------------------------------------------------------------------------------------
>
>                 Key: HTTPCORE-235
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-235
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore
>    Affects Versions: 4.0.1
>            Reporter: Steve Loughran
>
> Also on my review of EntityUtils.toString(), I see that it's code to take an 
> input stream and a content length only uses the content length parameter to 
> set the size of the buffer -there is no attempt to verify that the amount of 
> data received was as expected and raise an {{IOException}} if less data 
> arrived. 
> While this code will appear to work, especially on loopback and local 
> connections, it is flawed long-haul where connections are often dropped 
> early. 
> I propose streaming the entity content to a byte array, validating the 
> length, then building a string in the appropriate charset from the buffer if 
> it is valid.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to