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();
             }


Reply via email to