You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/01/23 16:43:09 UTC
svn commit: r614568 - in
/incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling:
launchpad/renderers/JsonRendererServlet.java ujax/UjaxPostServlet.java
Author: fmeschbe
Date: Wed Jan 23 07:43:06 2008
New Revision: 614568
URL: http://svn.apache.org/viewvc?rev=614568&view=rev
Log:
SLING-186 Fix exception handling
Modified:
incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/launchpad/renderers/JsonRendererServlet.java
incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/ujax/UjaxPostServlet.java
Modified: incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/launchpad/renderers/JsonRendererServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/launchpad/renderers/JsonRendererServlet.java?rev=614568&r1=614567&r2=614568&view=diff
==============================================================================
--- incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/launchpad/renderers/JsonRendererServlet.java (original)
+++ incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/launchpad/renderers/JsonRendererServlet.java Wed Jan 23 07:43:06 2008
@@ -24,11 +24,12 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.sling.api.HttpStatusCodeException;
+import org.apache.sling.api.SlingException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.resource.NonExistingResource;
import org.apache.sling.api.resource.Resource;
+import org.apache.sling.api.resource.ResourceNotFoundException;
import org.apache.sling.api.servlets.SlingSafeMethodsServlet;
import org.apache.sling.commons.json.JSONException;
import org.slf4j.Logger;
@@ -57,7 +58,7 @@
// Access and check our data
final Resource r = req.getResource();
if(r instanceof NonExistingResource) {
- throw new HttpStatusCodeException(HttpServletResponse.SC_NOT_FOUND, "No data to dump");
+ throw new ResourceNotFoundException("No data to dump");
}
/* TODO
@@ -84,8 +85,9 @@
// Do we have a Node?
final Node n = r.adaptTo(Node.class);
if(n == null) {
- throw new HttpStatusCodeException(
- HttpServletResponse.SC_NOT_IMPLEMENTED, "Can only dump nodes");
+ resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED,
+ "Can only dump nodes");
+ return;
}
// SLING-167: the last selector, if present, gives the number of
@@ -97,10 +99,9 @@
try {
maxRecursionLevels = Integer.parseInt(level);
} catch(NumberFormatException nfe) {
- throw new HttpStatusCodeException(HttpServletResponse.SC_BAD_REQUEST,
- "Invalid recursion selector value '" + level + "'"
- );
-
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST,
+ "Invalid recursion selector value '" + level + "'");
+ return;
}
}
@@ -127,12 +128,12 @@
resp.getOutputStream().write("{}".getBytes());
}
- private void reportException(Exception e) throws HttpStatusCodeException {
+ /**
+ * @param e
+ * @throws SlingException wrapping the given exception
+ */
+ private void reportException(Exception e) {
log.warn("Error in JsonRendererServlet: " + e.toString(),e);
- throw new HttpStatusCodeException(
- HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- e.toString(),
- e
- );
+ throw new SlingException(e.toString(), e);
}
}
Modified: incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/ujax/UjaxPostServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/ujax/UjaxPostServlet.java?rev=614568&r1=614567&r2=614568&view=diff
==============================================================================
--- incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/ujax/UjaxPostServlet.java (original)
+++ incubator/sling/trunk/launchpad/launchpad-servlets/src/main/java/org/apache/sling/ujax/UjaxPostServlet.java Wed Jan 23 07:43:06 2008
@@ -30,7 +30,7 @@
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletResponse;
-import org.apache.sling.api.HttpStatusCodeException;
+import org.apache.sling.api.SlingException;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.request.RequestParameter;
@@ -123,7 +123,7 @@
}
} catch(RepositoryException re) {
- throw new HttpStatusCodeException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,re.toString(),re);
+ throw new SlingException(re.toString(), re);
} finally {
try {
@@ -188,8 +188,10 @@
}
if(s.itemExists(currentPath)) {
- throw new HttpStatusCodeException(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
- "Collision in generated node names for path=" + currentPath);
+ response.sendError(
+ HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+ "Collision in generated node names for path=" + currentPath);
+ return;
}
} else if(s.itemExists(currentPath)) {
@@ -198,7 +200,9 @@
if(item.isNode()) {
currentNode = (Node)item;
} else {
- throw new HttpStatusCodeException(HttpServletResponse.SC_CONFLICT,"Item at path " + currentPath + " is not a Node");
+ response.sendError(HttpServletResponse.SC_CONFLICT,
+ "Item at path " + currentPath + " is not a Node");
+ return;
}
} else {