StatementFinalizer (Apache Tomcat 9.0.71 API Documentation)

Package org.apache.tomcat.jdbc.pool.interceptor

## Class StatementFinalizer

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

- All Implemented Interfaces:
    `java.lang.reflect.InvocationHandler`

      public class StatementFinalizer
      extends AbstractCreateStatementInterceptor

  Keeps track of statements associated with a connection and invokes close upon `Connection.close()` Useful for applications that don't close the associated statements after being done with a connection.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `StatementFinalizer.StatementEntry` |

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.List<StatementFinalizer.StatementEntry>` | `statements` |

    - ### Fields inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor

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

    - ### Fields inherited from class org.apache.tomcat.jdbc.pool.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
    --- | ---
    `StatementFinalizer()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `closeInvoked()` | Method invoked when the operation `Connection.close()` is invoked.
    `java.lang.Object` | `createStatement​(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args, java.lang.Object statement, long time)` | This method will be invoked after a successful statement creation.
    `void` | `reset​(ConnectionPool parent, PooledConnection con)` | no-op for this interceptor. no state is stored.
    `void` | `setProperties​(java.util.Map<java.lang.String,​PoolProperties.InterceptorProperty> properties)` | Called during the creation of an interceptor The properties can be set during the configuration of an interceptor Override this method to perform type casts between string values and object properties

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.interceptor.AbstractCreateStatementInterceptor

      `getConstructor, invoke, isExecute, isStatement, process`

    - ### Methods inherited from class org.apache.tomcat.jdbc.pool.JdbcInterceptor

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

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

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

- - ### Field Detail

    - #### statements

          protected java.util.List<StatementFinalizer.StatementEntry> statements

  - ### Constructor Detail

    - #### StatementFinalizer

          public StatementFinalizer()

  - ### Method Detail

    - #### createStatement

          public java.lang.Object createStatement​(java.lang.Object proxy,
                                                  java.lang.reflect.Method method,
                                                  java.lang.Object[] args,
                                                  java.lang.Object statement,
                                                  long time)

      Description copied from class: `AbstractCreateStatementInterceptor`
      This method will be invoked after a successful statement creation. This method can choose to return a wrapper around the statement or return the statement itself. If this method returns a wrapper then it should return a wrapper object that implements one of the following interfaces. `Statement`, `PreparedStatement` or `CallableStatement`
      Specified by:
        `createStatement` in class `AbstractCreateStatementInterceptor`
      Parameters:
        `proxy` - the actual proxy object
        `method` - the method that was called. It will be one of the methods defined in `AbstractCreateStatementInterceptor.STATEMENT_TYPES`
        `args` - the arguments to the method
        `statement` - the statement that the underlying connection created
        `time` - Elapsed time
      Returns:
        a `Statement` object

    - #### closeInvoked

          public void closeInvoked()

      Description copied from class: `AbstractCreateStatementInterceptor`
      Method invoked when the operation `Connection.close()` is invoked.
      Specified by:
        `closeInvoked` in class `AbstractCreateStatementInterceptor`

    - #### setProperties

          public void setProperties​(java.util.Map<java.lang.String,​PoolProperties.InterceptorProperty> properties)

      Description copied from class: `JdbcInterceptor`
      Called during the creation of an interceptor The properties can be set during the configuration of an interceptor Override this method to perform type casts between string values and object properties
      Overrides:
        `setProperties` in class `JdbcInterceptor`
      Parameters:
        `properties` - The properties

    - #### reset

          public void reset​(ConnectionPool parent,
                            PooledConnection con)

      Description copied from class: `AbstractCreateStatementInterceptor`
      no-op for this interceptor. no state is stored.
      Overrides:
        `reset` in class `AbstractCreateStatementInterceptor`
      Parameters:
        `parent` - - the connection pool owning the connection
        `con` - - the pooled connection