blob: 25a031c139053075ba0491e0531abda85b49de52 [file] [log] [blame]
<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>