| <html xml:space="default" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd" xmlns:p="tapestry:parameter"> |
| <head> |
| <title>Application Exception</title> |
| </head> |
| <body> |
| <div class="navbar navbar-inverse navbar-fixed-top"> |
| <div class="container"> |
| <div class="navbar-header"> |
| <ul class="nav navbar-nav"> |
| <li> |
| <h4 class="navbar-text">Application Exception</h4> |
| </li> |
| <li class="divider-vertical"/> |
| <li> |
| <p class="navbar-text"> |
| Tapestry Version: ${tapestryVersion} |
| </p> |
| </li> |
| <li class="divider-vertical"/> |
| <li> |
| <p class="navbar-text"> |
| Application Version: ${applicationVersion} |
| </p> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container"> |
| |
| <div class="panel panel-danger"> |
| <div class="panel-heading"> |
| <h2 class="panel-title">An exception has occurred processing this request.</h2> |
| </div> |
| <div class="panel-body"> |
| ${rootException.message} |
| </div> |
| <t:if test="showActions"> |
| |
| <div class="panel-footer"> |
| |
| <div class="btn-toolbar btn-group-xs"> |
| <t:loop source="actionLinks" value="actionLink"> |
| <a href="${actionLink.uri}" class="btn btn-default"> |
| <t:outputRaw value="actionLink.label"/> |
| </a> |
| </t:loop> |
| |
| </div> |
| </div> |
| <t:if test="showReload"> |
| <div class="panel-footer"> |
| <p><strong>with reload</strong>: Force a reload of component |
| classes. This is often necessary |
| after fixing a class that previously failed to compile due to errors. |
| </p> |
| </div> |
| </t:if> |
| </t:if> |
| </div> |
| |
| <t:if test="! productionMode"> |
| |
| <t:exceptiondisplay exception="rootException"/> |
| |
| <h3>Request</h3> |
| <t:renderobject object="request"/> |
| |
| <t:if test="hasSession"> |
| <h2>Session</h2> |
| <dl> |
| <t:loop source="session.attributeNames" value="attributeName"> |
| <dt>${attributeName}</dt> |
| <dd> |
| <t:renderobject object="attributeValue"/> |
| </dd> |
| </t:loop> |
| </dl> |
| </t:if> |
| |
| <h3>Threads</h3> |
| |
| <table class="table table-condensed table-hover table-striped exception-report-threads"> |
| <thead> |
| <tr> |
| <th>Thread Name</th> |
| <th>Group Name</th> |
| <th>State</th> |
| <th>Flags</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr t:type="loop" source="threads" value="thread" class="${thread.className}"> |
| <td class="thread-name">${thread.name}</td> |
| <td>${thread.group?.name}</td> |
| <td>${thread.state}</td> |
| <td>${thread.flags}</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| |
| <h3>System Properties</h3> |
| <dl> |
| <t:loop source="systemProperties" value="propertyName"> |
| <dt>${propertyName}</dt> |
| <dd> |
| <t:if test="! complexProperty"> |
| ${propertyValue} |
| <p:else> |
| <ul> |
| <li t:type="loop" source="complexPropertyValue" value="var:path"> |
| ${var:path} |
| </li> |
| </ul> |
| </p:else> |
| </t:if> |
| </dd> |
| </t:loop> |
| </dl> |
| </t:if> |
| </div> |
| </body> |
| |
| </html> |