From: markt Date: Thu, 24 Mar 2011 13:24:28 +0000 (+0000) Subject: Resolve some TODOs for "swallowAbortedUploads" X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f5ec290ebf393068e7d67d62801c25c50e7355e2;p=tomcat7.0 Resolve some TODOs for "swallowAbortedUploads" git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1084949 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/connector/CometEventImpl.java b/java/org/apache/catalina/connector/CometEventImpl.java index f5e4fdcf0..34e9f20cb 100644 --- a/java/org/apache/catalina/connector/CometEventImpl.java +++ b/java/org/apache/catalina/connector/CometEventImpl.java @@ -95,6 +95,7 @@ public class CometEventImpl implements CometEvent { } boolean iscomet = request.isComet(); request.setComet(false); + request.finishRequest(); response.finishResponse(); if (iscomet) request.cometClose(); } diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 9d2e2b0c9..6a17264c7 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -314,6 +314,7 @@ public class CoyoteAdapter implements Adapter { } } if (!request.isAsync() && !comet) { + request.finishRequest(); response.finishResponse(); req.action(ActionCode.POST_REQUEST , null); } @@ -417,6 +418,7 @@ public class CoyoteAdapter implements Adapter { if (asyncConImpl != null) { async = true; } else if (!comet) { + request.finishRequest(); response.finishResponse(); if (postParseSuccess) { // Log only if processing was invoked. diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java index f88a774d7..e90055be2 100644 --- a/java/org/apache/catalina/connector/Request.java +++ b/java/org/apache/catalina/connector/Request.java @@ -792,10 +792,13 @@ public class Request * @exception IOException if an input/output error occurs */ public void finishRequest() throws IOException { - // The reader and input stream don't need to be closed - // TODO: Is this ever called? - // If so, move input swallow disabling from - // Response.finishResponse() to here + // Optionally disable swallowing of additional request data. + Context context = getContext(); + if (context != null && + response.getStatus() == HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE && + !context.getSwallowAbortedUploads()) { + coyoteRequest.action(ActionCode.DISABLE_SWALLOW_INPUT, null); + } } diff --git a/java/org/apache/catalina/connector/Response.java b/java/org/apache/catalina/connector/Response.java index 26cb5ba17..00eb84406 100644 --- a/java/org/apache/catalina/connector/Response.java +++ b/java/org/apache/catalina/connector/Response.java @@ -49,7 +49,6 @@ import org.apache.catalina.core.ApplicationSessionCookieConfig; import org.apache.catalina.security.SecurityUtil; import org.apache.catalina.util.CharsetMapper; import org.apache.catalina.util.DateTool; -import org.apache.coyote.ActionCode; import org.apache.tomcat.util.buf.CharChunk; import org.apache.tomcat.util.buf.UEncoder; import org.apache.tomcat.util.http.FastHttpDateFormat; @@ -498,15 +497,6 @@ public class Response */ public void finishResponse() throws IOException { - // Optionally disable swallowing of additional request data. - // TODO: Should be in Request.finishRequest(), but that method - // seems to get called never. - Context context = getContext(); - if (context != null - && getStatus() == HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE - && !context.getSwallowAbortedUploads()) { - coyoteResponse.action(ActionCode.DISABLE_SWALLOW_INPUT, null); - } // Writing leftover bytes outputBuffer.close(); }