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/08/25 11:33:27 UTC

svn commit: r688682 - in /incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl: SlingMainServlet.java filter/AbstractSlingFilterChain.java request/RequestData.java request/SlingRequestDispatcher.java request/SlingRequestPathInfo.java

Author: fmeschbe
Date: Mon Aug 25 02:33:27 2008
New Revision: 688682

URL: http://svn.apache.org/viewvc?rev=688682&view=rev
Log:
SLING-613 Apply slightly modified patch with the following extensions:
  * More log tracking (filter application, resource path info)
  * Dump the request progress tracker in the default error handler

Modified:
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestPathInfo.java

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java?rev=688682&r1=688681&r2=688682&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/SlingMainServlet.java Mon Aug 25 02:33:27 2008
@@ -52,6 +52,7 @@
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.request.RequestPathInfo;
+import org.apache.sling.api.request.RequestProgressTracker;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceNotFoundException;
 import org.apache.sling.api.resource.ResourceResolver;
@@ -272,7 +273,9 @@
             if (filters != null) {
                 FilterChain processor = new RequestSlingFilterChain(this,
                     filters);
-
+                
+                request.getRequestProgressTracker().log("Applying request filters");
+                
                 processor.doFilter(request, response);
 
             } else {
@@ -433,6 +436,8 @@
         if (filters != null) {
             FilterChain processor = new SlingComponentFilterChain(filters);
 
+            request.getRequestProgressTracker().log("Applying inner filters");
+            
             processor.doFilter(request, response);
         } else {
             log.debug("service: No Resource level filters, calling servlet");
@@ -507,9 +512,16 @@
             pw.println("</p>");
 
             if (throwable != null) {
+                pw.println("<h3>Exception stacktrace:</h3>");
                 pw.println("<pre>");
                 throwable.printStackTrace(pw);
                 pw.println("</pre>");
+                
+                RequestProgressTracker tracker = ((SlingHttpServletRequest) request).getRequestProgressTracker();
+                pw.println("<h3>Request Progress:</h3>");
+                pw.println("<pre>");
+                tracker.dump(pw);
+                pw.println("</pre>");
             }
 
             pw.println("<hr /><address>");
@@ -755,7 +767,7 @@
         }
         return stringConfig;
     }
-
+    
     //---------- HttpContext interface ----------------------------------------
 
     public String getMimeType(String name) {

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java?rev=688682&r1=688681&r2=688682&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/filter/AbstractSlingFilterChain.java Mon Aug 25 02:33:27 2008
@@ -28,6 +28,7 @@
 
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.api.request.RequestProgressTracker;
 
 public abstract class AbstractSlingFilterChain implements FilterChain {
 
@@ -49,6 +50,10 @@
         this.current++;
 
         if (this.current < this.filters.length) {
+            
+            RequestProgressTracker tracker = ((SlingHttpServletRequest) request).getRequestProgressTracker();
+            tracker.log("Calling filter: {0}", this.filters[this.current].getClass().getName());
+            
             this.filters[this.current].doFilter(request, response, this);
         } else {
             this.render((SlingHttpServletRequest) request,

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java?rev=688682&r1=688681&r2=688682&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/RequestData.java Mon Aug 25 02:33:27 2008
@@ -155,6 +155,8 @@
             getServletRequest().getPathInfo());
         ContentData contentData = pushContent(resource, requestPathInfo);
 
+	    requestProgressTracker.log("Resource Path Info: {0}", requestPathInfo);
+
         // finally resolve the servlet for the resource
         ServletResolver sr = slingMainServlet.getServletResolver();
         if (sr != null) {
@@ -162,7 +164,7 @@
             Servlet servlet = sr.resolveServlet(slingRequest);
             requestProgressTracker.logTimer("ServletResolution",
                 "URI={0} handled by Servlet={1}",
-                getServletRequest().getRequestURI(), servlet.getServletInfo());
+                getServletRequest().getRequestURI(), RequestUtil.getServletName(servlet));
             contentData.setServlet(servlet);
         } else {
             log.warn("init(): No ServletResolver available");

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java?rev=688682&r1=688681&r2=688682&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestDispatcher.java Mon Aug 25 02:33:27 2008
@@ -119,7 +119,7 @@
             }
         }
 
-        cRequest.getRequestProgressTracker().log("Including resource " + info.getResourcePath());
+        cRequest.getRequestProgressTracker().log("Including resource {0} ({1})", resource, info);
         rd.getSlingMainServlet().includeContent(request, response, resource,
             info);
     }

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestPathInfo.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestPathInfo.java?rev=688682&r1=688681&r2=688682&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestPathInfo.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/request/SlingRequestPathInfo.java Mon Aug 25 02:33:27 2008
@@ -164,7 +164,7 @@
 
     @Override
     public String toString() {
-        return "SlingRequestPathInfoParser:" + ", path='" + resourcePath + "'"
+        return "SlingRequestPathInfo: path='" + resourcePath + "'"
             + ", selectorString='" + selectorString + "'" + ", extension='"
             + extension + "'" + ", suffix='" + suffix + "'";
     }