You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2010/07/23 03:39:33 UTC

svn commit: r966930 - in /cxf/branches/servlet3jetty7/rt/transports: http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/ http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/ http/src/main/java/org/apache/cxf/transport/http/

Author: dkulp
Date: Fri Jul 23 01:39:32 2010
New Revision: 966930

URL: http://svn.apache.org/viewvc?rev=966930&view=rev
Log:
Workaround bug in jetty

Modified:
    cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
    cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
    cxf/branches/servlet3jetty7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java

Modified: cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java?rev=966930&r1=966929&r2=966930&view=diff
==============================================================================
--- cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java (original)
+++ cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/main/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestination.java Fri Jul 23 01:39:32 2010
@@ -215,6 +215,14 @@ public class JettyHTTPDestination extend
         Request baseRequest = (req instanceof Request) 
             ? (Request)req : HttpConnection.getCurrentConnection().getRequest();
             
+        if (!"HEAD".equals(req.getMethod())) {
+            //bug in Jetty with persistent connections that if a HEAD is
+            //sent, a _head flag is never reset
+            HttpConnection c = baseRequest.getConnection();
+            if (c != null) {
+                c.getGenerator().setHead(false);
+            }
+        }
         if (getServer().isSetRedirectURL()) {
             resp.sendRedirect(getServer().getRedirectURL());
             resp.flushBuffer();

Modified: cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java?rev=966930&r1=966929&r2=966930&view=diff
==============================================================================
--- cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java (original)
+++ cxf/branches/servlet3jetty7/rt/transports/http-jetty/src/test/java/org/apache/cxf/transport/http_jetty/JettyHTTPDestinationTest.java Fri Jul 23 01:39:32 2010
@@ -674,8 +674,9 @@ public class JettyHTTPDestinationTest ex
         request = EasyMock.createMock(Request.class);
         response = EasyMock.createMock(Response.class);
         request.getMethod();
-        EasyMock.expectLastCall().andReturn(method);
-        
+        EasyMock.expectLastCall().andReturn(method).atLeastOnce();
+        request.getConnection();
+        EasyMock.expectLastCall().andReturn(null).anyTimes();
         
         if (setRedirectURL) {
             policy.setRedirectURL(NOWHERE + "foo/bar");
@@ -696,7 +697,7 @@ public class JettyHTTPDestinationTest ex
                 EasyMock.expect(request.getAttribute(AbstractHTTPDestination.CXF_CONTINUATION_MESSAGE))
                     .andReturn(null);
                 
-                EasyMock.expect(request.getMethod()).andReturn(method);            
+                //EasyMock.expect(request.getMethod()).andReturn(method);            
                 EasyMock.expect(request.getInputStream()).andReturn(is);
                 EasyMock.expect(request.getContextPath()).andReturn("/bar");
                 EasyMock.expect(request.getPathInfo()).andReturn("/foo");

Modified: cxf/branches/servlet3jetty7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java
URL: http://svn.apache.org/viewvc/cxf/branches/servlet3jetty7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java?rev=966930&r1=966929&r2=966930&view=diff
==============================================================================
--- cxf/branches/servlet3jetty7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java (original)
+++ cxf/branches/servlet3jetty7/rt/transports/http/src/main/java/org/apache/cxf/transport/http/AbstractHTTPDestination.java Fri Jul 23 01:39:32 2010
@@ -653,6 +653,7 @@ public abstract class AbstractHTTPDestin
                 }
             }
             if (wrappedStream != null) {
+                wrappedStream.flush();
                 wrappedStream.close();
                 response.flushBuffer();
             }