diff options
author | Greg Wilkins | 2010-09-09 03:46:20 +0000 |
---|---|---|
committer | Greg Wilkins | 2010-09-09 03:46:20 +0000 |
commit | 51d5da4bbc19ab6301d44af90c12e7432de951cb (patch) | |
tree | da536e616c7e1b31c0881591bf2352b93f688d3b /jetty-servlet/src/main | |
parent | 2c16ef1fc156588a3a93d6f98ec2458537d07623 (diff) | |
download | org.eclipse.jetty.project-51d5da4bbc19ab6301d44af90c12e7432de951cb.tar.gz org.eclipse.jetty.project-51d5da4bbc19ab6301d44af90c12e7432de951cb.tar.xz org.eclipse.jetty.project-51d5da4bbc19ab6301d44af90c12e7432de951cb.zip |
324679 Don't set content length if filter has written content.
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2265 7e9141cc-0065-0410-87d8-b60c137991c4
Diffstat (limited to 'jetty-servlet/src/main')
-rw-r--r-- | jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java index b3c12fa153..49945e5576 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/DefaultServlet.java @@ -41,6 +41,7 @@ import org.eclipse.jetty.io.WriterOutputStream; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Dispatcher; import org.eclipse.jetty.server.HttpConnection; +import org.eclipse.jetty.server.HttpOutput; import org.eclipse.jetty.server.InclusiveByteRange; import org.eclipse.jetty.server.ResourceCache; import org.eclipse.jetty.server.Response; @@ -772,8 +773,13 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory } else { + // has a filter already written to the response? + boolean written = out instanceof HttpOutput + ? !((HttpOutput)out).isWritten() + : HttpConnection.getCurrentConnection().getGenerator().isContentWritten(); + // See if a direct methods can be used? - if (out instanceof HttpConnection.Output && content!=null) + if (content!=null && !written && out instanceof HttpOutput) { if (response instanceof Response) { @@ -798,7 +804,7 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory else { // Write headers normally - writeHeaders(response,content,content_length); + writeHeaders(response,content,written?-1:content_length); // Write content normally Buffer buffer = (content==null)?null:content.getIndirectBuffer(); |