[ 
https://issues.apache.org/jira/browse/CXF-4855?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Kulp resolved CXF-4855.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.7.4
         Assignee: Daniel Kulp

Patch applied!
                
> The server does not work with HTTP 1.0 clients (keep-alive not respected)
> -------------------------------------------------------------------------
>
>                 Key: CXF-4855
>                 URL: https://issues.apache.org/jira/browse/CXF-4855
>             Project: CXF
>          Issue Type: Bug
>          Components: Transports
>    Affects Versions: 2.7.0
>            Reporter: Mattias Lundstrom
>            Assignee: Daniel Kulp
>             Fix For: 2.7.4
>
>         Attachments: JettyHTTPDestination.patch
>
>
> The "Connection: keep-alive" handling for HTTP 1.0 clients do not seem to 
> work in 2.7.x (tested on 2.7.0 and 2.7.3)
> After some debugging in our system, the problem seems to be in the transport 
> class org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
> This is a FilterOutputStream which means that calling close on this stream 
> causes flush() + close() on the underlying stream. The problem is that the 
> flush() call seem to cause response content length calculations to fail. This 
> then causes the "Connection" response header to be filtered out (among other 
> things).
> We are currently running with our own local patch
> =====
> --- 
> apache-cxf-2.7.0-src/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java.orig
>     2012-10-06 04:19:50.000000000 +0200
> +++ 
> apache-cxf-2.7.0-src/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
>  2013-02-11 14:59:21.411916187 +0100
> @@ -405,6 +405,13 @@
>              out.sendContent(c);
>              return c.getCount();
>          }
> +
> +        @Override
> +        public void close() throws IOException {
> +            // Avoid calling flush() here. It interferes with
> +            // content length calculation in the generator.
> +            out.close();
> +        }
>      }
>      static class CountingInputStream extends FilterInputStream {
>          int count;
> =====
> This seems to work in our system at least.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to