# Class QueryTimeoutInterceptor

java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor
org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor

All Implemented Interfaces:
  `InvocationHandler`

public class QueryTimeoutInterceptor extends AbstractCreateStatementInterceptor
Interceptor that sets a query timeout on every created `Statement`.

- ## Field Summary

  ### Fields inherited from class AbstractCreateStatementInterceptor

  `constructors, CREATE_STATEMENT, CREATE_STATEMENT_IDX, EXECUTE, EXECUTE_BATCH, EXECUTE_QUERY, EXECUTE_TYPES, EXECUTE_UPDATE, GET_GENERATED_KEYS, GET_RESULTSET, GET_STATEMENT, PREPARE_CALL, PREPARE_CALL_IDX, PREPARE_STATEMENT, PREPARE_STATEMENT_IDX, RESULTSET_IDX, STATEMENT_TYPE_COUNT, STATEMENT_TYPES`

  ### Fields inherited from class JdbcInterceptor

  `CLOSE_VAL, EQUALS_VAL, GETCONNECTION_VAL, HASHCODE_VAL, ISCLOSED_VAL, ISVALID_VAL, ISWRAPPERFOR_VAL, properties, TOSTRING_VAL, UNWRAP_VAL`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QueryTimeoutInterceptor()`
  Default constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `closeInvoked()`
  No-op; this interceptor holds no state that requires cleanup on close.
  `Object`
  `createStatement(Object proxy, Method method, Object[] args, Object statement, long time)`
  Sets the query timeout on the created statement if it is a `Statement` and the timeout value is positive.
  `void`
  `setProperties(Map<String, PoolProperties.InterceptorProperty> properties)`
  Initializes the `queryTimeout` property from the provided configuration map.

  ### Methods inherited from class AbstractCreateStatementInterceptor

  `getConstructor, invoke, isExecute, isStatement, process, reset`

  ### Methods inherited from class JdbcInterceptor

  `compare, compare, disconnected, getNext, getProperties, isUseEquals, poolClosed, poolStarted, setNext, setUseEquals`

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### QueryTimeoutInterceptor

    public QueryTimeoutInterceptor()
    Default constructor.

- ## Method Details

  - ### setProperties

    public void setProperties(Map<String, PoolProperties.InterceptorProperty> properties)
    Initializes the `queryTimeout` property from the provided configuration map.
    Overrides:
      `setProperties` in class `JdbcInterceptor`
    Parameters:
      `properties` - map of interceptor properties

  - ### createStatement

    public Object createStatement(Object proxy, Method method, Object[] args, Object statement, long time)
    Sets the query timeout on the created statement if it is a `Statement` and the timeout value is positive.
    Specified by:
      `createStatement` in class `AbstractCreateStatementInterceptor`
    Parameters:
      `proxy` - the actual proxy object
      `method` - the method that was called
      `args` - the arguments to the method
      `statement` - the statement that the underlying connection created
      `time` - elapsed time in milliseconds
    Returns:
      the (possibly wrapped) statement object

  - ### closeInvoked

    public void closeInvoked()
    No-op; this interceptor holds no state that requires cleanup on close.
    Specified by:
      `closeInvoked` in class `AbstractCreateStatementInterceptor`