Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2010-09-10 06:03:45 +0000
committerGreg Wilkins2010-09-10 06:03:45 +0000
commitf8155553493f83fa4a82c81f36359900ede50334 (patch)
tree04efdfc725979b694547897503d3a6bb4e0a3419 /jetty-servlet/src/main
parentf919f78f1f71d8caead75999f74844121228ed3d (diff)
downloadorg.eclipse.jetty.project-f8155553493f83fa4a82c81f36359900ede50334.tar.gz
org.eclipse.jetty.project-f8155553493f83fa4a82c81f36359900ede50334.tar.xz
org.eclipse.jetty.project-f8155553493f83fa4a82c81f36359900ede50334.zip
324679 dont set content length if writer is gotten
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2268 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.java21
1 files changed, 15 insertions, 6 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 49945e5576..f59949ab5d 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
@@ -761,8 +761,21 @@ public class DefaultServlet extends HttpServlet implements ResourceFactory
// Get the output stream (or writer)
OutputStream out =null;
- try{out = response.getOutputStream();}
- catch(IllegalStateException e) {out = new WriterOutputStream(response.getWriter());}
+ boolean written;
+ try
+ {
+ out = response.getOutputStream();
+
+ // has a filter already written to the response?
+ written = out instanceof HttpOutput
+ ? !((HttpOutput)out).isWritten()
+ : HttpConnection.getCurrentConnection().getGenerator().isContentWritten();
+ }
+ catch(IllegalStateException e)
+ {
+ out = new WriterOutputStream(response.getWriter());
+ written=true; // there may be data in writer buffer, so assume written
+ }
if ( reqRanges == null || !reqRanges.hasMoreElements() || content_length<0)
{
@@ -773,10 +786,6 @@ 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 (content!=null && !written && out instanceof HttpOutput)

Back to the top