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]