Return-Path: Delivered-To: apmail-incubator-sling-commits-archive@minotaur.apache.org Received: (qmail 43032 invoked from network); 9 Jun 2009 14:42:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Jun 2009 14:42:36 -0000 Received: (qmail 81442 invoked by uid 500); 9 Jun 2009 14:42:47 -0000 Delivered-To: apmail-incubator-sling-commits-archive@incubator.apache.org Received: (qmail 81385 invoked by uid 500); 9 Jun 2009 14:42:47 -0000 Mailing-List: contact sling-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: sling-dev@incubator.apache.org Delivered-To: mailing list sling-commits@incubator.apache.org Received: (qmail 81260 invoked by uid 99); 9 Jun 2009 14:42:47 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Jun 2009 14:42:47 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 09 Jun 2009 14:42:45 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2F20E2388892; Tue, 9 Jun 2009 14:42:25 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r783017 - in /incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl: DefaultGetServlet.java JsonQueryServlet.java Date: Tue, 09 Jun 2009 14:42:25 -0000 To: sling-commits@incubator.apache.org From: cziegeler@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090609144225.2F20E2388892@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: cziegeler Date: Tue Jun 9 14:42:24 2009 New Revision: 783017 URL: http://svn.apache.org/viewvc?rev=783017&view=rev Log: SLING-994 : If the request is included, do not use sendError but throw an exception if no renderer is found Modified: incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java Modified: incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java?rev=783017&r1=783016&r2=783017&view=diff ============================================================================== --- incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java (original) +++ incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/DefaultGetServlet.java Tue Jun 9 14:42:24 2009 @@ -26,6 +26,7 @@ import javax.servlet.ServletException; import javax.servlet.http.HttpServletResponse; +import org.apache.sling.api.SlingConstants; import org.apache.sling.api.SlingHttpServletRequest; import org.apache.sling.api.SlingHttpServletResponse; import org.apache.sling.api.resource.ResourceNotFoundException; @@ -43,7 +44,7 @@ /** * A SlingSafeMethodsServlet that renders the current Resource as simple HTML - * + * * @scr.component name="org.apache.sling.servlets.get.DefaultGetServlet" * immediate="true" label="%servlet.get.name" * description="%servlet.get.description" @@ -156,17 +157,17 @@ setupServlet(rendererMap, PlainTextRendererServlet.EXT_TXT, new PlainTextRendererServlet()); } - + if (enableJson) { setupServlet(rendererMap, JsonRendererServlet.EXT_JSON, new JsonRendererServlet()); } - + if (enableXml) { setupServlet(rendererMap, XMLRendererServlet.EXT_XML, new XMLRendererServlet()); } - + // use the servlet for rendering StreamRendererServlet.EXT_RES as the // streamer servlet streamerServlet = rendererMap.get(StreamRendererServlet.EXT_RES); @@ -204,7 +205,7 @@ // cannot handle the request for missing resources if (ResourceUtil.isNonExistingResource(request.getResource())) { throw new ResourceNotFoundException( - request.getResource().getPath(), "No Resource found"); + request.getResource().getPath(), "No resource found"); } Servlet rendererServlet; @@ -218,7 +219,13 @@ // fail if we should not just stream or we cannot support the ext. if (rendererServlet == null) { request.getRequestProgressTracker().log( - "No Renderer for extension " + ext); + "No renderer for extension " + ext); + final boolean isIncluded = request.getAttribute(SlingConstants.ATTR_REQUEST_SERVLET) != null; + // if this is an included request, sendError() would fail + // as the response is already committed, in this case we throw an exception + if ( isIncluded ) { + throw new ServletException("No renderer found for extensions " + ext); + } response.sendError(HttpServletResponse.SC_FORBIDDEN); return; } Modified: incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java URL: http://svn.apache.org/viewvc/incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java?rev=783017&r1=783016&r2=783017&view=diff ============================================================================== --- incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java (original) +++ incubator/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java Tue Jun 9 14:42:24 2009 @@ -39,7 +39,6 @@ import org.apache.sling.commons.json.JSONException; import org.apache.sling.commons.json.io.JSONWriter; import org.apache.sling.jcr.resource.JcrResourceUtil; -import org.apache.sling.servlets.get.impl.helpers.JsonRendererServlet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,10 +47,10 @@ * * @scr.component immediate="true" metatype="no" * @scr.service interface="javax.servlet.Servlet" - * + * * @scr.property name="service.description" value="Default Query Servlet" * @scr.property name="service.vendor" value="The Apache Software Foundation" - * + * * Use this as the default query servlet for json get requests for Sling * @scr.property name="sling.servlet.resourceTypes" * value="sling/servlet/default"