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/27 02:58:14 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector HttpResponseFacade.java ResponseFacade.java
remm 01/09/26 17:58:14
Modified: catalina/src/share/org/apache/catalina/connector
HttpResponseFacade.java ResponseFacade.java
Log:
- The response facade now have its own committed flag, so that the application
layer can be committed (during a sendRedirect or sendError) while not committing
the underlying response object.
Revision Changes Path
1.3 +70 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseFacade.java
Index: HttpResponseFacade.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseFacade.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- HttpResponseFacade.java 2001/07/22 20:25:06 1.2
+++ HttpResponseFacade.java 2001/09/27 00:58:14 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseFacade.java,v 1.2 2001/07/22 20:25:06 pier Exp $
- * $Revision: 1.2 $
- * $Date: 2001/07/22 20:25:06 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/HttpResponseFacade.java,v 1.3 2001/09/27 00:58:14 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/09/27 00:58:14 $
*
* ====================================================================
*
@@ -79,7 +79,7 @@
*
* @author Remy Maucherat
* @author Craig R. McClanahan
- * @version $Revision: 1.2 $ $Date: 2001/07/22 20:25:06 $
+ * @version $Revision: 1.3 $ $Date: 2001/09/27 00:58:14 $
*/
public final class HttpResponseFacade
@@ -104,7 +104,12 @@
public void addCookie(Cookie cookie) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).addCookie(cookie);
+
}
@@ -135,59 +140,120 @@
public void sendError(int sc, String msg)
throws IOException {
+
+ if (isCommitted())
+ return;
+
+ committed = true;
+
((HttpServletResponse) response).sendError(sc, msg);
+
}
public void sendError(int sc)
throws IOException {
+
+ if (isCommitted())
+ return;
+
+ committed = true;
+
((HttpServletResponse) response).sendError(sc);
+
}
public void sendRedirect(String location)
throws IOException {
+
+ if (isCommitted())
+ return;
+
+ committed = true;
+
((HttpServletResponse) response).sendRedirect(location);
+
}
public void setDateHeader(String name, long date) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).setDateHeader(name, date);
+
}
public void addDateHeader(String name, long date) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).addDateHeader(name, date);
+
}
public void setHeader(String name, String value) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).setHeader(name, value);
+
}
public void addHeader(String name, String value) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).addHeader(name, value);
+
}
public void setIntHeader(String name, int value) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).setIntHeader(name, value);
+
}
public void addIntHeader(String name, int value) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).addIntHeader(name, value);
+
}
public void setStatus(int sc) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).setStatus(sc);
+
}
public void setStatus(int sc, String sm) {
+
+ if (isCommitted())
+ return;
+
((HttpServletResponse) response).setStatus(sc, sm);
+
}
1.3 +48 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java
Index: ResponseFacade.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ResponseFacade.java 2001/07/22 20:25:06 1.2
+++ ResponseFacade.java 2001/09/27 00:58:14 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java,v 1.2 2001/07/22 20:25:06 pier Exp $
- * $Revision: 1.2 $
- * $Date: 2001/07/22 20:25:06 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java,v 1.3 2001/09/27 00:58:14 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/09/27 00:58:14 $
*
* ====================================================================
*
@@ -80,7 +80,7 @@
* object. All methods are delegated to the wrapped response.
*
* @author Remy Maucherat
- * @version $Revision: 1.2 $ $Date: 2001/07/22 20:25:06 $
+ * @version $Revision: 1.3 $ $Date: 2001/09/27 00:58:14 $
*/
public class ResponseFacade implements ServletResponse {
@@ -96,6 +96,7 @@
*/
public ResponseFacade(Response response) {
this.response = (ServletResponse) response;
+ committed = false;
}
@@ -108,6 +109,12 @@
protected ServletResponse response = null;
+ /**
+ * Application level commit.
+ */
+ protected boolean committed = false;
+
+
// ------------------------------------------------ ServletResponse Methods
@@ -129,17 +136,33 @@
public void setContentLength(int len) {
+
+ if (isCommitted())
+ return;
+
response.setContentLength(len);
+
}
public void setContentType(String type) {
+
+ if (isCommitted())
+ return;
+
response.setContentType(type);
+
}
public void setBufferSize(int size) {
+
+ if (isCommitted())
+ throw new IllegalStateException
+ (/*sm.getString("responseBase.reset.ise")*/);
+
response.setBufferSize(size);
+
}
@@ -150,26 +173,46 @@
public void flushBuffer()
throws IOException {
+
+ committed = true;
+
response.flushBuffer();
+
}
public void resetBuffer() {
+
+ if (isCommitted())
+ throw new IllegalStateException
+ (/*sm.getString("responseBase.reset.ise")*/);
+
response.resetBuffer();
+
}
public boolean isCommitted() {
- return response.isCommitted();
+ return (committed || response.isCommitted());
}
public void reset() {
+
+ if (isCommitted())
+ throw new IllegalStateException
+ (/*sm.getString("responseBase.reset.ise")*/);
+
response.reset();
+
}
public void setLocale(Locale loc) {
+
+ if (isCommitted())
+ return;
+
response.setLocale(loc);
}