[
https://issues.apache.org/jira/browse/HTTPCORE-372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13893390#comment-13893390
]
Dmitry Potapov commented on HTTPCORE-372:
-----------------------------------------
Oleg,
I'm not sure I've got you correct.
ChunkDecoder lines 180-181 become unreachable, that's why whole block on lines
179-182 was removed. New block at lines 90-100 follows the same logic as in
past for case when endOfStream == false; for endOfStream == true case I fill cr
and lf with zeroes to have exception thrown at line 102, so, no new throws
needed to indicate protocol violation.
So, I see the only one change, which can be introduced here: remove lines 94,
95, 124 and 125 which sets state to COMPLETED and completed flag to true.
If you have any other considerations concerning these changes, please, let me
know
> ChunkedInputStream and ChunkDecoder allows closing chunk absence
> ----------------------------------------------------------------
>
> Key: HTTPCORE-372
> URL: https://issues.apache.org/jira/browse/HTTPCORE-372
> Project: HttpComponents HttpCore
> Issue Type: Improvement
> Components: HttpCore, HttpCore NIO
> Reporter: Dmitry Potapov
> Fix For: 4.4-alpha1
>
> Attachments: expect-closing-chunk.patch
>
>
> I've found that both these classes treats chunked streams without closing
> chunk as complete streams without any errors. This contradicts RFC2616 ยง3.6.1
> Consider the following scenario:
> 1. HttpClient sends request to Server
> 2. Server accepts request and send response headers with Transfer-Encoding:
> chunked
> 3. Server sends first chunk completely and dies with segfault before sending
> the next chunk
> 4. HttpClient receives response headers and creates ChunkedInputStream
> 5. ChunkedInputStream reads this first chunk and encounters eof
> Expected result:
> IOException thrown indicating incomplete response
> Actual result:
> No exception is thrown, -1 is returned on the next read and nobody knows that
> response is incomplete.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]