You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/09/28 18:57:51 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core ApplicationDispatcher.java
remm 01/09/28 09:57:51
Modified: catalina/src/share/org/apache/catalina/core
ApplicationDispatcher.java
Log:
- After returning from a forward, use suspend to shutdown the response,
instead of closing it whenever possible.
- That fixes "bug" 3704.
Revision Changes Path
1.26 +25 -18 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java
Index: ApplicationDispatcher.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- ApplicationDispatcher.java 2001/08/08 00:31:54 1.25
+++ ApplicationDispatcher.java 2001/09/28 16:57:51 1.26
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java,v 1.25 2001/08/08 00:31:54 remm Exp $
- * $Revision: 1.25 $
- * $Date: 2001/08/08 00:31:54 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationDispatcher.java,v 1.26 2001/09/28 16:57:51 remm Exp $
+ * $Revision: 1.26 $
+ * $Date: 2001/09/28 16:57:51 $
*
* ====================================================================
*
@@ -92,6 +92,7 @@
import org.apache.catalina.Request;
import org.apache.catalina.Response;
import org.apache.catalina.Wrapper;
+import org.apache.catalina.connector.ResponseFacade;
import org.apache.catalina.core.StandardWrapper;
import org.apache.catalina.util.InstanceSupport;
import org.apache.catalina.util.StringManager;
@@ -108,7 +109,7 @@
* <code>javax.servlet.ServletResponseWrapper</code>.
*
* @author Craig R. McClanahan
- * @version $Revision: 1.25 $ $Date: 2001/08/08 00:31:54 $
+ * @version $Revision: 1.26 $ $Date: 2001/09/28 16:57:51 $
*/
final class ApplicationDispatcher
@@ -435,23 +436,29 @@
// Commit and close the response before we return
if (debug >= 1)
log(" Committing and closing response");
- response.flushBuffer();
- try {
- PrintWriter writer = response.getWriter();
- writer.flush();
- writer.close();
- } catch (IllegalStateException e) {
+
+ if (response instanceof ResponseFacade) {
+ ((ResponseFacade) response).finish();
+ } else {
+ // Close anyway
+ response.flushBuffer();
try {
- ServletOutputStream stream = response.getOutputStream();
- stream.flush();
- stream.close();
- } catch (IllegalStateException f) {
- ;
- } catch (IOException f) {
+ PrintWriter writer = response.getWriter();
+ writer.flush();
+ writer.close();
+ } catch (IllegalStateException e) {
+ try {
+ ServletOutputStream stream = response.getOutputStream();
+ stream.flush();
+ stream.close();
+ } catch (IllegalStateException f) {
+ ;
+ } catch (IOException f) {
+ ;
+ }
+ } catch (IOException e) {
;
}
- } catch (IOException e) {
- ;
}
}