Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2010-09-09 03:46:20 +0000
committerGreg Wilkins2010-09-09 03:46:20 +0000
commit51d5da4bbc19ab6301d44af90c12e7432de951cb (patch)
treeda536e616c7e1b31c0881591bf2352b93f688d3b /jetty-servlet/src/main
parent2c16ef1fc156588a3a93d6f98ec2458537d07623 (diff)
downloadorg.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.java10
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();

Back to the top