luehe 2004/11/01 15:34:04
Modified: catalina/src/share/org/apache/catalina/connector
ResponseFacade.java
Log:
Throw more meaningful exception (instead of NPE) if underlying response
has been recycled and attempt is made to access it via its facade
Revision Changes Path
1.8 +86 -6
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java
Index: ResponseFacade.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/connector/ResponseFacade.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ResponseFacade.java 1 Nov 2004 23:21:58 -0000 1.7
+++ ResponseFacade.java 1 Nov 2004 23:34:04 -0000 1.8
@@ -29,6 +29,7 @@
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
+import org.apache.catalina.util.StringManager;
/**
* Facade class that wraps a Coyote response object.
@@ -38,8 +39,6 @@
* @author Jean-Francois Arcand
* @version $Revision$ $Date$
*/
-
-
public class ResponseFacade
implements HttpServletResponse {
@@ -98,7 +97,14 @@
}
- // ----------------------------------------------------- Instance Variables
+ // ----------------------------------------------- Class/Instance Variables
+
+
+ /**
+ * The string manager for this package.
+ */
+ protected static StringManager sm =
+ StringManager.getManager(Constants.Package);
/**
@@ -120,15 +126,23 @@
public void finish() {
- response.setSuspended(true);
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+ response.setSuspended(true);
}
public boolean isFinished() {
- return response.isSuspended();
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+ return response.isSuspended();
}
@@ -136,6 +150,12 @@
public String getCharacterEncoding() {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.getCharacterEncoding();
}
@@ -205,6 +225,12 @@
public int getBufferSize() {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.getBufferSize();
}
@@ -255,6 +281,12 @@
public boolean isCommitted() {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return (response.isAppCommitted());
}
@@ -280,6 +312,12 @@
public Locale getLocale() {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.getLocale();
}
@@ -295,26 +333,56 @@
public boolean containsHeader(String name) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.containsHeader(name);
}
public String encodeURL(String url) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.encodeURL(url);
}
public String encodeRedirectURL(String url) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.encodeRedirectURL(url);
}
public String encodeUrl(String url) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.encodeURL(url);
}
public String encodeRedirectUrl(String url) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.encodeRedirectURL(url);
}
@@ -451,11 +519,23 @@
public String getContentType() {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
return response.getContentType();
}
public void setCharacterEncoding(String arg0) {
+
+ if (response == null) {
+ throw new IllegalStateException(
+ sm.getString("responseFacade.nullResponse"));
+ }
+
response.setCharacterEncoding(arg0);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]