Class ProxyConnection

java.lang.Object
org.apache.tomcat.jdbc.pool.JdbcInterceptor
org.apache.tomcat.jdbc.pool.ProxyConnection
All Implemented Interfaces:
InvocationHandler

public class ProxyConnection extends JdbcInterceptor
A ProxyConnection object is the bottom most interceptor that wraps an object of type PooledConnection. The ProxyConnection intercepts three methods: By default method comparisons is done on a String reference level, unless the PoolConfiguration.setUseEquals(boolean) has been called with a true argument.
  • Field Details

    • connection

      protected PooledConnection connection
      The underlying pooled connection.
    • pool

      protected ConnectionPool pool
      The parent connection pool.
  • Constructor Details

    • ProxyConnection

      protected ProxyConnection(ConnectionPool parent, PooledConnection con, boolean useEquals)
      Creates a new ProxyConnection wrapping the given pooled connection.
      Parameters:
      parent - the parent connection pool
      con - the pooled connection
      useEquals - whether to use equals for method comparison
  • Method Details

    • getConnection

      public PooledConnection getConnection()
      Returns the underlying pooled connection.
      Returns:
      the pooled connection
    • setConnection

      public void setConnection(PooledConnection connection)
      Sets the underlying pooled connection.
      Parameters:
      connection - the pooled connection
    • getPool

      public ConnectionPool getPool()
      Returns the parent connection pool.
      Returns:
      the connection pool
    • setPool

      public void setPool(ConnectionPool pool)
      Sets the parent connection pool.
      Parameters:
      pool - the connection pool
    • reset

      public void reset(ConnectionPool parent, PooledConnection con)
      Description copied from class: JdbcInterceptor
      Gets called each time the connection is borrowed from the pool This means that if an interceptor holds a reference to the connection the interceptor can be reused for another connection.
      This method may be called with null as both arguments when we are closing down the connection.
      Specified by:
      reset in class JdbcInterceptor
      Parameters:
      parent - - the connection pool owning the connection
      con - - the pooled connection
    • isWrapperFor

      public boolean isWrapperFor(Class<?> iface)
      Checks whether this proxy wraps the given interface.
      Parameters:
      iface - the interface to check
      Returns:
      true if this proxy wraps the given interface
    • unwrap

      public Object unwrap(Class<?> iface) throws SQLException
      Unwraps the connection to the given interface.
      Parameters:
      iface - the interface to unwrap to
      Returns:
      the unwrapped connection
      Throws:
      SQLException - if the connection does not wrap the given interface
    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      Description copied from class: JdbcInterceptor
      Gets invoked each time an operation on Connection is invoked.
      Specified by:
      invoke in interface InvocationHandler
      Overrides:
      invoke in class JdbcInterceptor
      Throws:
      Throwable
    • isClosed

      public boolean isClosed()
      Returns true if the underlying connection has been closed or discarded.
      Returns:
      true if closed or discarded
    • getDelegateConnection

      public PooledConnection getDelegateConnection()
      Returns the delegate pooled connection.
      Returns:
      the delegate pooled connection
    • getParentPool

      public ConnectionPool getParentPool()
      Returns the parent connection pool.
      Returns:
      the parent connection pool
    • toString

      public String toString()
      Overrides:
      toString in class Object