camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CAMEL-9013) Camel HTTP no longer supporting chunked transfer encoding with Tomcat
Date Fri, 24 Jul 2015 16:00:05 GMT

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

Mime
View raw message