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:
    InvocationHandler

      public class StatementFinalizer
      extends AbstractCreateStatementInterceptor

  Keeps track of statements associated with a connection and invokes close upon `Connection.close()` Useful for applications that dont close the associated statements after being done with a connection.
  Author:
    fhanik

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ArrayList<WeakReference<Statement>>` | `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 and Description
    `StatementFinalizer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `closeInvoked()` Method invoked when the operation `Connection.close()` is invoked.
    `Object` | `createStatement(Object proxy, Method method, Object[] args, 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.

    - ### 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, setProperties, setUseEquals`

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

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

- - ### Field Detail

    - #### statements

          protected ArrayList<WeakReference<Statement>> statements

  - ### Constructor Detail

    - #### StatementFinalizer

          public StatementFinalizer()

  - ### Method Detail

    - #### createStatement

          public Object createStatement(Object proxy,
                               Method method,
                               Object[] args,
                               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
      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`

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

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.