Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
A new feature as of BI Platform 3.6 is template error pages.  There used to be no easy way to configure an error page resulting from an action sequence execution from the ViewAction servlet.  We used to direct customers to create their own (Java code) MessageFormatter class if they want to customize the way the error appears to end users. This is overkill for simple customization and happily this is no longer the case.

...

  The error used to be ugly, plain and quite uniformative.  The uninformative messages "Action Sequence Failed" is affectionately known as the SBC, or "something broke cap'n" error.  As of 3.6 you no longer are stuck with the SBC error when something goes wrong with your action sequence\!

...

  You can completely customize the way users see xaction errors using plain old html.

...



Extensive changes took place in the internals of the platform to render lots of detail about xaction failures.  These details are now exposed in the templated error page mentioned above, but also in the pentaho.log file (as well as your appserver's log file, e.g. catalina.out).

h1.

...

 Catalog of data tokens

...



These tokens are used in your html error template file.

...

Token

...

Description

...


|| Token \\ || Description \\ || Message bundle key (start with "MessageFormatter.")

...

 \\ ||
| %ERROR_HEADING%

...

 | e.g. "The Pentaho BI Platform reported an error while running an action sequence"

...

 | RESPONSE_ERROR_HEADING

...

%EXCEPTION_MSG%

...

prints the topmost exception message text

...

N/A

 |
| %EXCEPTION_MSG_LABEL%

...

 | e.g. "Error Message:"

...

 \\ | RESPONSE_EXCEPTION_MSG_LABEL

...

 \\ |
| %EXCEPTION_MSG% | prints the topmost exception message text \\ | N/A |
| %EXCEPTION_TIME_LABEL%

...

 \\ | e.g. "Error Time:"

...

 \\ | RESPONSE_EXCEPTION_TIME_LABEL

...

 |
| %EXCEPTION_TIME%

...

the time the root cause exception occurred.  Uses LocalHelper to format the date.

...

N/A

...

%EXCEPTION_TYPE_LABEL%

...

 

 \\ | the time the root cause exception occurred.  Uses LocalHelper to format the date. \\ | N/A \\ |
| %EXCEPTION_TYPE_LABEL% \\ | | RESPONSE_EXCEPTION_TYPE_LABEL

...

 \\ |
| %EXCEPTION_TYPE%

...

 

...

 

 \\ | | |
| %SESSION_ID_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_SESSION_ID_LABEL

...

 \\ |
| %SESSION_ID%

...

 

...

 

 \\ | | |
| %INSTANCE_ID_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_INSTANCE_ID_LABEL

...

 \\ |
| %INSTANCE_ID%

...

 

...

 

 \\ | | |
| %ACTION_SEQUENCE_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_ACTION_SEQUENCE_LABEL

...

 \\ |
| %ACTION_SEQUENCE%

...

 

...

 

 \\ | | |
| %ACTION_SEQUENCE_EXECUTION_STACK_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_ACTION_SEQUENCE_EXECUTION_STACK_LABEL

...

 |
| %ACTION_SEQUENCE_EXECUTION_STACK%

...

 

 \\ | | \\ |
| %ACTION_CLASS_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_ACTION_CLASS_LABEL

...

 |
| %ACTION_CLASS%

...

 

 \\ | | \\ |
| %ACTION_DESC_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_ACTION_DESC_LABEL

...

 \\ |
| %ACTION_DESC%

...

 

...

 

 \\ | | |
| %STEP_NUM_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_STEP_NUM_LABEL

...

 \\ |
| %STEP_NUM%

...

 

...

 

 \\ | | |
| %STACK_TRACE_LABEL%

...

 

 \\ | | RESPONSE_EXCEPTION_STACK_TRACE_LABEL

...

%STACK_TRACE%

...

 

...

 

Example html error template file

Code Block
 \\ |
| %STACK_TRACE% \\ | | |
| %EXCEPTION_MESSAGES_LABEL%\\ | | RESPONSE_EXCEPTION_MESSAGES_LABEL\\ |
| %EXCEPTION_MESSAGES%\\ | | |
| %SERVER_INFO%\\ | | USER_SERVER_VERSION\\ |
\\

h1. Example html error template file

{xml}
<html><head><title></title><link rel="stylesheet" type="text/css" href="/pentaho-style/active/default.css"></head>
<body>
<div id="errorResponse">
<div class="error"> 


       
<h1>%ERROR_HEADING%</h1>
<div class="summary">
  <div class="item"><span class="label">%EXCEPTION_MESSAGES_LABEL%</span><pre>%EXCEPTION_MESSAGES%</pre></div>
  <div class="item"><span class="label">%ACTION_SEQUENCE_LABEL%</span>%ACTION_SEQUENCE%</div>
  <div class="item"><span class="label">%ACTION_SEQUENCE_EXECUTION_STACK_LABEL%</span><pre>%ACTION_SEQUENCE_EXECUTION_STACK%</pre></div>
  <div class="item"><span class="label">%LOOP_INDEX_LABEL%</span>%LOOP_INDEX%</div>
  <div class="item"><span class="label">%EXCEPTION_TIME_LABEL%</span>%EXCEPTION_TIME%</div>
  <div class="item"><span class="label">%EXCEPTION_TYPE_LABEL%</span>%EXCEPTION_TYPE%</div>
  <div class="item"><span class="label">%SESSION_ID_LABEL%</span>%SESSION_ID%</div>
  <div class="item"><span class="label">%INSTANCE_ID_LABEL%</span>%INSTANCE_ID%</div>
  <div class="item"><span class="label">%ACTION_CLASS_LABEL%</span>%ACTION_CLASS%</div>
  <div class="item"><span class="label">%ACTION_DESC_LABEL%</span>%ACTION_DESC%</div>
  <!-- <div class="item"><span class="label">%STEP_NUM_LABEL%</span>%STEP_NUM%</div> -->
</div>

 
<div id="details" class="details"><span class="label">%STACK_TRACE_LABEL%</span><pre class="stackTrace">%STACK_TRACE%<pre></div>
 

</div> 
</div>

<div class="errorResponseFooter">%SERVER_INFO%</div>


  
</body>
</html>

Example error output

Here is an example of an action sequence failure as depicted in the log file:

No Format

{xml}

h1. Example error output

Here is an example of an action sequence failure as depicted in the log file:
{noformat}
| Error Time: Tuesday, November 3, 2009 4:43:47 PM EST
| Session ID: joe
| Instance Id: f77d2238-c8c1-11de-92b0-3dd9e4293f91
| Action Sequence: BurstSales.xaction
| Execution Stack:
EXECUTING ACTION: Email (EmailComponent)
	in IF STATEMENT: queryResult.getRowCount()>0
	in LOOP ON: employeeList
| Action Class: EmailComponent
| Action Desc: Email
| Loop Index: N/A
Stack Trace:org.pentaho.platform.api.engine.ActionValidationException: RuntimeContext.ERROR_0035 - Action validation failed.
	at org.pentaho.platform.engine.services.runtime.RuntimeContext.validateComponents(RuntimeContext.java:573)
	at org.pentaho.platform.engine.services.runtime.RuntimeContext.validateComponents(RuntimeContext.java:521)
{noformat}
Here is an example of an action sequence failure as depicted in a ViewAction servlet response (like you would see in the Pentaho User Console).  Of course, this text would be formatted and colored differently if it were actually rendered in PUC.

...


{noformat
}
The Pentaho BI Platform reported an error while running an action sequence
Possible Causes:

ActionValidationException: RuntimeContext.ERROR_0035 - Action validation failed.

Action Sequence:BurstSales.xaction
Execution Stack:

EXECUTING ACTION: Email (EmailComponent)
	in IF STATEMENT: queryResult.getRowCount()>0
	in LOOP ON: employeeList

Loop Index:N/A
Error Time:Tuesday, November 3, 2009 4:43:47 PM EST
Error Type:ActionValidationException
Session ID:joe
Instance Id:f77d2238-c8c1-11de-92b0-3dd9e4293f91
Action Class:EmailComponent
Action Description:Email
View Details Hide Details
Stack Trace:

org.pentaho.platform.api.engine.ActionValidationException: RuntimeContext.ERROR_0035 - Action validation failed.
	at org.pentaho.platform.engine.services.runtime.RuntimeContext.validateComponents(RuntimeContext.java:573)
	at org.pentaho.platform.engine.services.runtime.RuntimeContext.validateComponents(RuntimeContext.java:521)
	at org.pentaho.platform.engine.services.runtime.RuntimeContext.validateComponents(RuntimeContext.java:521)
{noformat}