# Class ErrorReportValve

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.LifecycleMBeanBase
org.apache.catalina.valves.ValveBase
org.apache.catalina.valves.ErrorReportValve

All Implemented Interfaces:
  `MBeanRegistration, Contained, JmxEnabled, Lifecycle, Valve`

Direct Known Subclasses:
  `JsonErrorReportValve, ProxyErrorReportValve`

public class ErrorReportValve extends ValveBase
Implementation of a Valve that outputs HTML error pages.

This Valve should be attached at the Host level, although it will work if attached to a Context.

HTML code from the Cocoon 2 project.

## Nested Class Summary

### Nested classes/interfaces inherited from interface Lifecycle

`Lifecycle.SingleUse`

## Field Summary

### Fields inherited from class ValveBase

`asyncSupported, container, containerLog, next, sm`

### Fields inherited from interface Lifecycle

`AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

## Constructor Summary

Constructors
Constructor
Description
`ErrorReportValve()`
Default constructor for ErrorReportValve.

## Method Summary

Modifier and Type
Method
Description
`protected ErrorPage`
`findErrorPage(int statusCode, Throwable throwable)`
Return the error page associated with the specified status and exception.
`protected String`
`getPartialServletStackTrace(Throwable t)`
Print out a partial servlet stack trace (truncating at the last occurrence of jakarta.servlet.).
`String`
`getProperty(String name)`
Gets a property for error page configuration.
`void`
`invoke(Request request, Response response)`
Invoke the next Valve in the sequence.
`boolean`
`isShowReport()`
Returns whether full error reports are enabled.
`boolean`
`isShowServerInfo()`
Returns whether server info is shown on error pages.
`protected void`
`report(Request request, Response response, Throwable throwable)`
Prints out an error report.
`boolean`
`setProperty(String name, String value)`
Sets a property for error page configuration.
`void`
`setShowReport(boolean showReport)`
Enables/Disables full error reports
`void`
`setShowServerInfo(boolean showServerInfo)`
Enables/Disables server info on error pages

### Methods inherited from class ValveBase

`backgroundProcess, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setContainer, setNext, startInternal, stopInternal, toString`

### Methods inherited from class LifecycleMBeanBase

`destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister`

### Methods inherited from class LifecycleBase

`addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### ErrorReportValve

public ErrorReportValve()
Default constructor for ErrorReportValve.

## Method Details

### invoke

public void invoke(Request request, Response response) throws IOException, ServletException
Invoke the next Valve in the sequence. When the invoke returns, check the response state. If the status code is greater than or equal to 400 or an uncaught exception was thrown then the error handling will be triggered.

Parameters:
  `request` - The servlet request to be processed
  `response` - The servlet response to be created
Throws:
  `IOException` - if an input/output error occurs
  `ServletException` - if a servlet error occurs

### findErrorPage

protected ErrorPage findErrorPage(int statusCode, Throwable throwable)
Return the error page associated with the specified status and exception.

Parameters:
  `statusCode` - the status code
  `throwable` - the exception
Returns:
  the associated error page

### report

protected void report(Request request, Response response, Throwable throwable)
Prints out an error report.

Parameters:
  `request` - The request being processed
  `response` - The response being generated
  `throwable` - The exception that occurred (which possibly wraps a root cause exception

### getPartialServletStackTrace

protected String getPartialServletStackTrace(Throwable t)
Print out a partial servlet stack trace (truncating at the last occurrence of jakarta.servlet.).

Parameters:
  `t` - The stack trace to process
Returns:
  the stack trace relative to the application layer

### setShowReport

public void setShowReport(boolean showReport)
Enables/Disables full error reports

Parameters:
  `showReport` - `true` to show full error data

### isShowReport

public boolean isShowReport()
Returns whether full error reports are enabled.

Returns:
  `true` if full error data is shown

### setShowServerInfo

public void setShowServerInfo(boolean showServerInfo)
Enables/Disables server info on error pages

Parameters:
  `showServerInfo` - `true` to show server info

### isShowServerInfo

public boolean isShowServerInfo()
Returns whether server info is shown on error pages.

Returns:
  `true` if server info is shown

### setProperty

public boolean setProperty(String name, String value)
Sets a property for error page configuration. Properties starting with "errorCode." or "exceptionType." are used to configure error pages.

Parameters:
  `name` - The property name
  `value` - The property value
Returns:
  `true` if the property was recognized and set

### getProperty

public String getProperty(String name)
Gets a property for error page configuration.

Parameters:
  `name` - The property name
Returns:
  The property value, or `null` if not found