You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ag...@apache.org on 2005/12/08 00:27:55 UTC
svn commit: r354903 - in
/incubator/roller/trunk/src/org/roller/presentation/velocity:
BasePageServlet.java FlavorServlet.java LanguageServlet.java
PreviewServlet.java
Author: agilliland
Date: Wed Dec 7 15:27:45 2005
New Revision: 354903
URL: http://svn.apache.org/viewcvs?rev=354903&view=rev
Log:
taking another stab at some better exception handling and error reporting.
- switched uses of response.setStatus() to response.sendError()
- handleRequest() method now throws IOException because of the call to response.sendError()
- RollerRequest objects are constructed at beginning of servlet and cause a 404 if there is an exception during construction.
Modified:
incubator/roller/trunk/src/org/roller/presentation/velocity/BasePageServlet.java
incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java
incubator/roller/trunk/src/org/roller/presentation/velocity/LanguageServlet.java
incubator/roller/trunk/src/org/roller/presentation/velocity/PreviewServlet.java
Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/BasePageServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/BasePageServlet.java?rev=354903&r1=354902&r2=354903&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/BasePageServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/BasePageServlet.java Wed Dec 7 15:27:45 2005
@@ -58,16 +58,30 @@
*/
public Template handleRequest(HttpServletRequest request,
HttpServletResponse response,
- Context ctx) {
+ Context ctx)
+ throws IOException {
Template outty = null;
+ RollerRequest rreq = null;
+ // first off lets parse the incoming request and validate it
try {
PageContext pageContext =
JspFactory.getDefaultFactory().getPageContext(
this, request, response,"", true, 8192, true);
- // Needed to init request attributes, etc.
- RollerRequest rreq = RollerRequest.getRollerRequest(pageContext);
+ rreq = RollerRequest.getRollerRequest(pageContext);
+ } catch (RollerException e) {
+
+ // An error initializing the request is considered to be a 404
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("DisplayException", e);
+
+ return null;
+ }
+
+
+ // request appears to be valid, lets render
+ try {
UserManager userMgr = RollerFactory.getRoller().getUserManager();
WebsiteData website = null;
@@ -128,16 +142,16 @@
}
} catch(ResourceNotFoundException rnfe ) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- request.setAttribute("DisplayException", rnfe);
- mLogger.error("ResourceNotFound: "+ request.getRequestURL());
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("DisplayException", rnfe);
+ mLogger.warn("ResourceNotFound: "+ request.getRequestURL());
mLogger.debug(rnfe);
-
} catch(Exception e) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
request.setAttribute("DisplayException", e);
- mLogger.error("EXCEPTION: in RollerServlet", e);
+ mLogger.error("Unexpected exception", e);
}
return outty;
Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java?rev=354903&r1=354902&r2=354903&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/FlavorServlet.java Wed Dec 7 15:27:45 2005
@@ -47,9 +47,11 @@
* @web.servlet-mapping url-pattern="/flavor/*"
*/
public class FlavorServlet extends VelocityServlet {
+
static final long serialVersionUID = -2720532269434186051L;
private static Log mLogger = LogFactory.getLog(FlavorServlet.class);
+
public Template handleRequest(HttpServletRequest request,
HttpServletResponse response,
Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/LanguageServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/LanguageServlet.java?rev=354903&r1=354902&r2=354903&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/LanguageServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/LanguageServlet.java Wed Dec 7 15:27:45 2005
@@ -5,6 +5,7 @@
*/
package org.roller.presentation.velocity;
+import java.io.IOException;
import java.util.Locale;
import javax.servlet.ServletConfig;
@@ -65,13 +66,14 @@
}
}
+
/**
* @see org.roller.presentation.velocity.BasePageServlet#handleRequest(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.velocity.context.Context)
*/
- public Template handleRequest(
- HttpServletRequest request,
- HttpServletResponse response,
- Context ctx) {
+ public Template handleRequest(HttpServletRequest request,
+ HttpServletResponse response,
+ Context ctx)
+ throws IOException {
mLogger.debug("Processing language change...");
ServletContext servletContext = RollerContext.getServletContext();
Modified: incubator/roller/trunk/src/org/roller/presentation/velocity/PreviewServlet.java
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/src/org/roller/presentation/velocity/PreviewServlet.java?rev=354903&r1=354902&r2=354903&view=diff
==============================================================================
--- incubator/roller/trunk/src/org/roller/presentation/velocity/PreviewServlet.java (original)
+++ incubator/roller/trunk/src/org/roller/presentation/velocity/PreviewServlet.java Wed Dec 7 15:27:45 2005
@@ -1,4 +1,6 @@
package org.roller.presentation.velocity;
+
+import java.io.IOException;
import java.io.StringWriter;
import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
@@ -19,6 +21,8 @@
import org.roller.pojos.UserData;
import org.roller.pojos.WebsiteData;
import org.roller.presentation.RollerRequest;
+
+
/**
* Allow users to preview what their blog would look like in a given theme.
*
@@ -28,8 +32,7 @@
*/
public class PreviewServlet extends BasePageServlet {
- private static Log mLogger =
- LogFactory.getFactory().getInstance(PreviewServlet.class);
+ private static Log mLogger = LogFactory.getLog(PreviewServlet.class);
/**
@@ -38,7 +41,8 @@
*/
public Template handleRequest( HttpServletRequest request,
HttpServletResponse response,
- Context ctx ) {
+ Context ctx )
+ throws IOException {
Theme previewTheme = null;
@@ -55,7 +59,7 @@
// possibly "custom", but we'll handle that below
} catch(RollerException re) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
request.setAttribute("DisplayException", re);
mLogger.error("EXCEPTION: in RollerServlet", re);
}
@@ -71,13 +75,26 @@
}
Template outty = null;
+ RollerRequest rreq = null;
+ // first off lets parse the incoming request and validate it
try {
PageContext pageContext =
JspFactory.getDefaultFactory().getPageContext(
this, request, response,"", true, 8192, true);
- // Needed to init request attributes, etc.
- RollerRequest rreq = RollerRequest.getRollerRequest(pageContext);
+ rreq = RollerRequest.getRollerRequest(pageContext);
+ } catch (RollerException e) {
+
+ // An error initializing the request is considered to be a 404
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("DisplayException", e);
+
+ return null;
+ }
+
+
+ // request appears to be valid, lets render
+ try {
UserManager userMgr = RollerFactory.getRoller().getUserManager();
WebsiteData website = null;
@@ -108,7 +125,7 @@
// trying to preview a "custom" theme
if ( page == null ) {
// lets just call it a 404 and return
- response.sendError(404);
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
return null;
}
@@ -131,16 +148,16 @@
}
} catch(ResourceNotFoundException rnfe ) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- request.setAttribute("DisplayException", rnfe);
- mLogger.error("ResourceNotFound: "+ request.getRequestURL());
+ response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("DisplayException", rnfe);
+ mLogger.warn("ResourceNotFound: "+ request.getRequestURL());
mLogger.debug(rnfe);
-
} catch(Exception e) {
- response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
request.setAttribute("DisplayException", e);
- mLogger.error("EXCEPTION: in RollerServlet", e);
+ mLogger.error("Unexpected exception", e);
}
return outty;