# 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.

Author:
  Remy Maucherat, Craig R. McClanahan, Nicola Ken Barozzi Aisa, Stefano Mazzocchi, Yoav Shapira

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

  `Lifecycle.SingleUse`

- ## Field Summary

  ### Fields inherited from class org.apache.catalina.valves.ValveBase

  `asyncSupported, container, containerLog, next, sm`

  ### Fields inherited from interface org.apache.catalina.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()`

- ## 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)`
  `void`
  `invoke(Request request, Response response)`
  Invoke the next Valve in the sequence.
  `boolean`
  `isShowReport()`
  `boolean`
  `isShowServerInfo()`
  `protected void`
  `report(Request request, Response response, Throwable throwable)`
  Prints out an error report.
  `boolean`
  `setProperty(String name, String value)`
  `void`
  `setShowReport(boolean showReport)`
  Enables/Disables full error reports
  `void`
  `setShowServerInfo(boolean showServerInfo)`
  Enables/Disables server info on error pages

  ### Methods inherited from class org.apache.catalina.valves.ValveBase

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

  ### Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase

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

  ### Methods inherited from class org.apache.catalina.util.LifecycleBase

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

  ### Methods inherited from class java.lang.Object

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

- ## Constructor Details

  - ### ErrorReportValve

    public 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()

  - ### setShowServerInfo

    public void setShowServerInfo(boolean showServerInfo)
    Enables/Disables server info on error pages
    Parameters:
      `showServerInfo` - `true` to show server info

  - ### isShowServerInfo

    public boolean isShowServerInfo()

  - ### setProperty

    public boolean setProperty(String name, String value)

  - ### getProperty

    public String getProperty(String name)