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

Daniel Kulp commented on CAMEL-9013:
------------------------------------

The code is still calling "is.available() == 0" which is still wrong.   Per 
spec, available() does NOT return any information about whether the body has 
any data or not.  It only returns an estimate of the number of bytes that can 
be read without blocking.   Thus, the code is still wrong.  An http client can 
send the headers, flush the network connection, pause, then send the data.   If 
the call to available() occurs in the pause, available() would be 0.  

> Camel HTTP no longer supporting chunked transfer encoding with Tomcat
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-9013
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9013
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-http, camel-servlet
>    Affects Versions: 2.15.0, 2.15.1, 2.15.2
>            Reporter: Bob Browning
>            Assignee: Claus Ibsen
>             Fix For: 2.15.3
>
>
> When sending a chunked POST whilst running the servlet under Tomcat, camel 
> now fails to read the input stream and sets the body to null.
> [chunked-http-failure-test|https://github.com/ukcrpb6/chunked-http-failure-test]
> This is due to camel checking the stream for available bytes introduced in 
> CAMEL-5806. For whatever reason the CoyoteInputStream is returning 0 
> available bytes when handling a chunked request.
> {code}
>     if (len < 0) {
>         InputStream is = request.getInputStream();
>         if (is.available() == 0) {
>             // no data so return null
>             return null;
>         }
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to