       
       :ul { :class :c-exception-report } [
         (template-for [m (expand-exception-stack (-> env :cascade :exception))]
-          :li [ (render-exception-map m) ])
+          :li { :class (if (nil? (m :stack-trace)) :c-omitted) } [ (render-exception-map m) ])
       ]
       ;; TODO request details, session details? etc.
     ]

(ns #^{:doc "Exception reporting"}
  cascade.exception
  (:import (java.lang Throwable StackTraceElement))
  (:use 
  	cascade 
  	(cascade config logging pipeline)))
  
;; Identifies the properties of Throwable that are excluded from each exception-map's set of properties  

  { 
  	:element element
  	:method-name
	  	(let [file-name (.getFileName element)
	  			  line-number (.getLineNumber element)
	  			  class-name (.getClassName element)
	  			  method-name (.getMethodName element)]
	  		(template
	  		  (or
	  		  	(convert-clojure-frame class-name method-name)
	  		  	(str class-name "." method-name))
	  		  " "	
	  		  (cond
	  		    (.isNativeMethod element) (template :em [ "(Native Method)" ])
	  		    (and (not (nil? file-name)) (< 0 line-number)) (str "(" file-name ":" line-number ")")
	  		    (not (nil? file-name)) (str "(" file-name ")") 
	  		    true (template :em [ "(Unknown Source)" ]))))
	  	:class-name (class-name-for-element element)
  })  
  
(defn transform-stack-trace
