hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roland Hänel (Commented) (JIRA) <j...@apache.org>
Subject [jira] [Commented] (HTTPCORE-296) IdentityDecoder fails to consume as POST request with Content-Length 0 (zero)
Date Mon, 12 Mar 2012 21:12:38 GMT

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

Roland Hänel commented on HTTPCORE-296:
---------------------------------------

Hi Oleg,

Thanks for the quick reply. However one might doubt whether the solution is really that easy.
I don't think the spec is 100% clear on this issue. Section 4.1 specifies the message body
optional; section 4.3 says that "The presence of a message-body in a request is signaled by
the inclusion of a Content-Length or Transfer-Encoding header field in the request's message-headers."
We all know that POST messages usually have a message body, but I don't think we can read
from the spec that it MUST have one.

If in doubt, might I suggest that a better solution could be to handle an entity enclosing
request without message body by using a LengthDelimitedDecoder and a length of 0. This should
also work out of the box and ensure the 'obviously expected behavior'.

-Roland
                
> IdentityDecoder fails to consume as POST request with Content-Length 0 (zero)
> -----------------------------------------------------------------------------
>
>                 Key: HTTPCORE-296
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-296
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.2-alpha2
>            Reporter: Roland Hänel
>             Fix For: 4.2-beta2
>
>
> If a client submits a POST with Content-Length 0, the HttpCore framework will fire the
onContentReceived(...) method of the HttpAsyncRequestConsumer once. However, the decoder (passed
as an argument to onContentReceived()) will never enter the "completed" state, because no
bytes will actually be received from the client. However, reaching the "completed" stage of
the decoder is an requirement for the HttpAsyncServiceHandler to finally process the request
(i.e., call the handle(...) method).
> This leads to the (incorrect) behavior that it is impossible to handle a POST request
with Content-Length 0 in HttpCore NIO.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

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


Mime
View raw message