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 {