 		  
 		  	(render (-> env :servlet-api :request))
 			]		  	
-
     ]
   ])
   
 (create-pipeline :request-exception
   (fn [env exception]
     (debug "Request exception: %s" exception)
+    (.printStackTrace (root-cause exception))
     (call-pipeline :render-view (assoc-in env [:cascade :exception] exception) #'exception-report)))
             
	"Converts a stack frame into DOM nodes representing the Clojure namespace and function name(s),
	or returns nil if the stack frame is not for a Clojure call frame."
	[class-name method-name]
	(debug "Converting: %s.%s" class-name method-name)
	(when (contains? #{"invoke" "doInvoke"} method-name)
		(let [[namespace-name & raw-function-ids] (s2/split class-name #"\$")
		_ (debug "Raw function ids: %s" (ppstring raw-function-ids))
				  function-ids (map #(nth (first (re-seq #"(\w+)__\d+" %)) 1 nil) raw-function-ids)
				  _ (debug "Function ids: %s" (ppstring function-ids))
				  function-names (map #(s2/replace % \_ \-) function-ids)]				 
		  (if-not (empty? raw-function-ids)
		  	(template

      
      :ul { :class :c-exception-report } [
        (template-for [m (expand-exception-stack (-> env :cascade :exception))]
        	; TODO: Smarter logic about which frames to be hidden
        	; Currently, assumes only the deepest is interesting.
        	; When we add some additonal levels of try/catch & report
        	; it may be useful to display some of the outer exceptions as well
          :li { :class (if (nil? (m :stack-trace)) :c-omitted) } [ (render-exception-map m) ])
      ]

