You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2013/11/04 21:26:55 UTC

git commit: Format the exception stack trace as a table

Updated Branches:
  refs/heads/master bec5a5c77 -> 9c94bc607


Format the exception stack trace as a table


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/9c94bc60
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/9c94bc60
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/9c94bc60

Branch: refs/heads/master
Commit: 9c94bc6079fb0f5c4c76f414dfaf2b82d1de9e16
Parents: bec5a5c
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Mon Nov 4 12:16:50 2013 -0800
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Mon Nov 4 12:16:50 2013 -0800

----------------------------------------------------------------------
 .../modules/t5/core/exception-display.coffee    |  2 +-
 .../corelib/components/ExceptionDisplay.java    | 43 +++++++++++++++++++-
 .../META-INF/assets/core/ExceptionDisplay.css   | 26 +++++++++---
 .../corelib/components/ExceptionDisplay.tml     | 22 ++++++----
 4 files changed, 79 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/9c94bc60/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
index 32d868f..581100d 100644
--- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
+++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-display.coffee
@@ -22,7 +22,7 @@ define ["./dom"],
     dom.onDocument "click", "[data-behavior=stack-trace-filter-toggle]", ->
       checked = @element.checked
 
-      for traceList in dom.body.find "ul.stack-trace"
+      for traceList in dom.body.find ".stack-trace"
         traceList[if checked then "addClass" else "removeClass"] "filtered"
 
       return

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/9c94bc60/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java
index fbacdca..c1afa24 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/ExceptionDisplay.java
@@ -1,4 +1,4 @@
-// Copyright 2008, 2009, 2010, 2011, 2012 The Apache Software Foundation
+// Copyright 2008-2013 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -89,4 +89,45 @@ public class ExceptionDisplay
 
         return result;
     }
+
+    public Object getLineNumberForFrame()
+    {
+        if (frame.getLineNumber() < 1)
+        {
+            return "";
+        }
+
+        return frame.getLineNumber();
+    }
+
+    public String getFramePackageName()
+    {
+        return splitClass()[0];
+    }
+
+    public String getFrameClassName()
+    {
+        return splitClass()[1];
+    }
+
+    private String[] splitClass()
+    {
+        String name = frame.getClassName();
+
+        int dotx = name.lastIndexOf('.');
+
+        // For generated classes in root package:
+        if (dotx < 0)
+        {
+            return new String[]{"", name};
+        }
+
+        // For normal classes:
+
+        return new String[]{
+                name.substring(0, dotx),
+                name.substring(dotx)
+        };
+    }
 }
+

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/9c94bc60/tapestry-core/src/main/resources/META-INF/assets/core/ExceptionDisplay.css
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/META-INF/assets/core/ExceptionDisplay.css b/tapestry-core/src/main/resources/META-INF/assets/core/ExceptionDisplay.css
index e997d75..ca8699b 100644
--- a/tapestry-core/src/main/resources/META-INF/assets/core/ExceptionDisplay.css
+++ b/tapestry-core/src/main/resources/META-INF/assets/core/ExceptionDisplay.css
@@ -1,17 +1,33 @@
-UL.stack-trace LI {
+TABLE.stack-trace {
     font-size: small;
 }
 
-LI.usercode-frame {
+TABLE.stack-trace TR.usercode-frame {
     font-weight: bold;
     color: blue;
 }
 
-LI.omitted-frame {
+TABLE.stack-trace TR.omitted-frame {
     color: gray;
-    list-style: square;
 }
 
-UL.filtered LI.omitted-frame {
+TABLE.stack-trace.filtered TR.omitted-frame {
     display: none;
 }
+
+TABLE.stack-trace TD.class-name {
+    text-align: right;
+}
+
+TABLE.stack-trace .package-name {
+    font-size: xx-small;
+}
+
+TABLE.stack-trace TD.method-name {
+    font-weight: bold;
+}
+
+TABLE.stack-trace TD.file-name {
+    font-size: x-small;
+    text-align: right;
+}

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/9c94bc60/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ExceptionDisplay.tml
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ExceptionDisplay.tml b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ExceptionDisplay.tml
index 214d866..944f49b 100644
--- a/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ExceptionDisplay.tml
+++ b/tapestry-core/src/main/resources/org/apache/tapestry5/corelib/components/ExceptionDisplay.tml
@@ -5,7 +5,9 @@
             <h3>${info.className}</h3>
 
             <t:if test="info.message">
-                <p><strong>${info.message}</strong></p>
+                <p>
+                    <strong>${info.message}</strong>
+                </p>
             </t:if>
 
             <t:if test="info.propertyNames">
@@ -25,16 +27,22 @@
             <div>
                 <div class="pull-right">
                     <label class="checkbox">
-                        <input type="checkbox" data-behavior="stack-trace-filter-toggle" checked="true"/> Filter Frames?
+                        <input type="checkbox" data-behavior="stack-trace-filter-toggle" checked="true"/>
+                        Filter Frames?
                     </label>
                 </div>
                 <h4>Stack trace:</h4>
             </div>
-            <ul class="stack-trace filtered">
-                <li t:type="loop" source="info.stackTrace" value="frame" class="${frameClass}">
-                    ${frame}
-                </li>
-            </ul>
+            <table class="stack-trace filtered table table-condensed table-hover table-striped">
+                <tr t:type="loop" source="info.stackTrace" value="frame" class="${frameClass}">
+                    <td class="class-name" xml:space="preserve">
+                        <span class="package-name">${framePackageName}</span>${frameClassName}
+                    </td>
+                    <td class="method-name">${frame.methodName}()</td>
+                    <td class="file-name">${frame.fileName}</td>
+                    <td>${lineNumberForFrame}</td>
+                </tr>
+            </table>
         </t:if>
     </t:loop>
 </div>
\ No newline at end of file