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