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

James Leigh edited comment on HTTPCORE-219 at 3/4/10 9:02 PM:
--------------------------------------------------------------

I am talking about some _arbitrary_ _non-standard_ methods, but I am referring 
to the _standard_ HTTP messaging (not its methods).

The problem I encountered is that if HttpEntityEnclodingRequest is used and 
there is no message-body (i.e. no Content-Length or Transfer-Encoding headers), 
the method NHttpRequestHandler#entityRequest is called, but the methods 
ConsumingNHttpEntity#consumeContent and NHttpRequestHandler#handle are never 
called because there is no message-body to read. This is unexpected behaviour 
(to me) and was not easily tracked down.

Since httpCore detects the message-body differently then the HTTP spec I 
thought I would post this bug report so that others might not encounter this 
problem in the future.

The solution I did implement is to override
DefaultServerIOEventDispatch, DefaultNHttpServerConnection,  and 
HttpRequestParser to replace the HttpEntityEnclosingRequest object if there is 
no message-body.

      was (Author: jleigh):
    I am talking about some _arbitrary_ _non-standard_ methods, but I am 
referring to the _standard_ HTTP messaging (not its methods).

The problem I encountered is that if HttpEntityEnclodingRequest is used and 
there is no message-body (i.e. no Content-Length or Transfer-Encoding headers), 
the method NHttpRequestHandler#entityRequest is called, but the methods 
ConsumingNHttpEntity#consumeContent and NHttpRequestHandler#handle are never 
called because there is no message-body to read. This is unexpected behaviour 
(to me) and was not easily tracked down.

Since httpCore detects the message-body differently then the HTTP spec I 
thought I would post this bug report so that others might not encounter this 
problem in the future.
  
> HttpRequestParser Fails to Detect Requests Without a Message Body
> -----------------------------------------------------------------
>
>                 Key: HTTPCORE-219
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-219
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.0.1
>            Reporter: James Leigh
>
> The HttpRequestParser uses the request method to determine if the request has 
> a message body. However, HTTP 1.1 states 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 header fields. The parser 
> should be changed to use the header to determine if a message body is present.
> As is a POST or PUT request is received without a message body cannot be 
> processed. Furthermore, a GET request with a message body cannot be processed 
> either.

-- 
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