public class AttributeRestoringConnectionInvocationHandler extends Object implements InvocationHandler
Protects a 's attributes from being permanently modfied.
Connection
Wraps a provided such that its auto
commit and transaction isolation attributes can be overwritten, but
will automatically restored to their original values when the connection
is actually closed (and potentially returned to a pool for reuse).
Connection
| Constructor and Description |
|---|
AttributeRestoringConnectionInvocationHandler(Connection conn) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Attempts to restore the auto commit and transaction isolation connection
attributes of the wrapped connection to their original values (if they
were overwritten), before finally actually closing the wrapped connection.
|
protected org.slf4j.Logger |
getLog() |
Connection |
getWrappedConnection()
Gets the underlying connection to which all operations ultimately
defer.
|
Object |
invoke(Object proxy,
Method method,
Object[] args) |
void |
restoreOriginalAtributes()
Attempts to restore the auto commit and transaction isolation connection
attributes of the wrapped connection to their original values (if they
were overwritten).
|
void |
setAutoCommit(boolean autoCommit)
Sets this connection's auto-commit mode to the given state, saving
the original mode.
|
void |
setTransactionIsolation(int level)
Attempts to change the transaction isolation level to the given level, saving
the original level.
|
public AttributeRestoringConnectionInvocationHandler(Connection conn)
protected org.slf4j.Logger getLog()
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
invoke in interface InvocationHandlerThrowablepublic void setAutoCommit(boolean autoCommit)
throws SQLException
SQLExceptionpublic void setTransactionIsolation(int level)
throws SQLException
SQLExceptionpublic Connection getWrappedConnection()
java.sql.Connection interface.public void restoreOriginalAtributes()
public void close()
throws SQLException
SQLExceptionCopyright 2001-2019, Terracotta, Inc.