Class BorrowedConnectionProxy

java.lang.Object
org.hibernate.jdbc.BorrowedConnectionProxy
All Implemented Interfaces:
InvocationHandler

public class BorrowedConnectionProxy extends Object implements InvocationHandler
A proxy for borrowed connections which funnels all requests back into the ConnectionManager from which it was borrowed to be properly handled (in terms of connection release modes).

Note: the term borrowed here refers to connection references obtained via Session.connection() for application usage.

  • Constructor Details

    • BorrowedConnectionProxy

      public BorrowedConnectionProxy(ConnectionManager connectionManager)
  • Method Details

    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      Specified by:
      invoke in interface InvocationHandler
      Throws:
      Throwable
    • generateProxy

      public static Connection generateProxy(ConnectionManager connectionManager)
      Generates a Connection proxy wrapping the connection managed by the passed connection manager.
      Parameters:
      connectionManager - The connection manager to wrap with the connection proxy.
      Returns:
      The generated proxy.
    • renderUnuseable

      public static void renderUnuseable(Connection connection)
      Marks a borrowed connection as no longer usable.
      Parameters:
      connection - The connection (proxy) to be marked.
    • getWrappedConnection

      public static Connection getWrappedConnection(Connection connection)
      Convience method for unwrapping a connection proxy and getting a handle to an underlying connection.
      Parameters:
      connection - The connection (proxy) to be unwrapped.
      Returns:
      The unwrapped connection.
    • getProxyClassLoader

      public static ClassLoader getProxyClassLoader()
      Determines the appropriate class loader to which the generated proxy should be scoped.
      Returns:
      The class loader appropriate for proxy construction.