Class DelegatingConnection<C extends java.sql.Connection>
- java.lang.Object
- 
- org.apache.tomcat.dbcp.dbcp2.AbandonedTrace
- 
- org.apache.tomcat.dbcp.dbcp2.DelegatingConnection<C>
 
 
- 
- Type Parameters:
- C- the Connection type
 - All Implemented Interfaces:
- java.lang.AutoCloseable,- java.sql.Connection,- java.sql.Wrapper,- TrackedUse
 - Direct Known Subclasses:
- PoolableConnection,- PoolingConnection
 
 public class DelegatingConnection<C extends java.sql.Connection> extends AbandonedTrace implements java.sql.Connection A base delegating implementation ofConnection.All of the methods from the Connectioninterface simply check to see that theConnectionis active, and call the corresponding method on the "delegate" provided in my constructor.Extends AbandonedTrace to implement Connection tracking and logging of code which created the Connection. Tracking the Connection ensures that the AbandonedObjectPool can close this connection and recycle it if its pool of connections is nearing exhaustion and this connection's last usage is older than the removeAbandonedTimeout. - Since:
- 2.0
 
- 
- 
Constructor SummaryConstructors Constructor Description DelegatingConnection(C c)Creates a wrapper for the Connection which traces this Connection in the AbandonedObjectPool.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabort(java.util.concurrent.Executor executor)protected voidactivate()protected voidcheckOpen()voidclearCachedState()Can be used to clear cached state when it is known that the underlying connection may have been accessed directly.voidclearWarnings()voidclose()Closes the underlying connection, and close any Statements that were not explicitly closed.protected voidcloseInternal()voidcommit()java.sql.ArraycreateArrayOf(java.lang.String typeName, java.lang.Object[] elements)java.sql.BlobcreateBlob()java.sql.ClobcreateClob()java.sql.NClobcreateNClob()java.sql.SQLXMLcreateSQLXML()java.sql.StatementcreateStatement()java.sql.StatementcreateStatement(int resultSetType, int resultSetConcurrency)java.sql.StatementcreateStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability)java.sql.StructcreateStruct(java.lang.String typeName, java.lang.Object[] attributes)booleangetAutoCommit()booleangetCacheState()Returns the state caching flag.java.lang.StringgetCatalog()java.util.PropertiesgetClientInfo()java.lang.StringgetClientInfo(java.lang.String name)java.lang.IntegergetDefaultQueryTimeout()Gets the default query timeout that will be used forStatements created from this connection.CgetDelegate()Returns my underlyingConnection.protected CgetDelegateInternal()intgetHoldability()java.sql.ConnectiongetInnermostDelegate()If my underlyingConnectionis not aDelegatingConnection, returns it, otherwise recursively invokes this method on my delegate.java.sql.ConnectiongetInnermostDelegateInternal()Although this method is public, it is part of the internal API and should not be used by clients.java.sql.DatabaseMetaDatagetMetaData()intgetNetworkTimeout()java.lang.StringgetSchema()intgetTransactionIsolation()java.util.Map<java.lang.String,java.lang.Class<?>>getTypeMap()java.sql.SQLWarninggetWarnings()protected voidhandleException(java.sql.SQLException e)Handles the given exception by throwing it.protected <T extends java.lang.Throwable>
 ThandleExceptionNoThrow(T e)Handles the givenSQLException.booleaninnermostDelegateEquals(java.sql.Connection c)Compares innermost delegate to the given connection.booleanisClosed()protected booleanisClosedInternal()booleanisReadOnly()booleanisValid(int timeoutSeconds)booleanisWrapperFor(java.lang.Class<?> iface)java.lang.StringnativeSQL(java.lang.String sql)protected voidpassivate()java.sql.CallableStatementprepareCall(java.lang.String sql)java.sql.CallableStatementprepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency)java.sql.CallableStatementprepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)java.sql.PreparedStatementprepareStatement(java.lang.String sql)java.sql.PreparedStatementprepareStatement(java.lang.String sql, int autoGeneratedKeys)java.sql.PreparedStatementprepareStatement(java.lang.String sql, int[] columnIndexes)java.sql.PreparedStatementprepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency)java.sql.PreparedStatementprepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)java.sql.PreparedStatementprepareStatement(java.lang.String sql, java.lang.String[] columnNames)voidreleaseSavepoint(java.sql.Savepoint savepoint)voidrollback()voidrollback(java.sql.Savepoint savepoint)voidsetAutoCommit(boolean autoCommit)voidsetCacheState(boolean cacheState)Sets the state caching flag.voidsetCatalog(java.lang.String catalog)voidsetClientInfo(java.lang.String name, java.lang.String value)voidsetClientInfo(java.util.Properties properties)protected voidsetClosedInternal(boolean closed)voidsetDefaultQueryTimeout(java.lang.Integer defaultQueryTimeoutSeconds)Sets the default query timeout that will be used forStatements created from this connection.voidsetDelegate(C connection)Sets my delegate.voidsetHoldability(int holdability)voidsetNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds)voidsetReadOnly(boolean readOnly)java.sql.SavepointsetSavepoint()java.sql.SavepointsetSavepoint(java.lang.String name)voidsetSchema(java.lang.String schema)voidsetTransactionIsolation(int level)voidsetTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)java.lang.StringtoString()Returns a string representation of the metadata associated with the innermost delegate connection.<T> Tunwrap(java.lang.Class<T> iface)- 
Methods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTraceaddTrace, clearTrace, getLastUsed, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed
 
- 
 
- 
- 
- 
Constructor Detail- 
DelegatingConnectionpublic DelegatingConnection(C c) Creates a wrapper for the Connection which traces this Connection in the AbandonedObjectPool.- Parameters:
- c- the- Connectionto delegate all calls to.
 
 
- 
 - 
Method Detail- 
toStringpublic java.lang.String toString() Returns a string representation of the metadata associated with the innermost delegate connection.- Overrides:
- toStringin class- java.lang.Object
 
 - 
getDelegatepublic C getDelegate() Returns my underlyingConnection.- Returns:
- my underlying Connection.
 
 - 
getDelegateInternalprotected final C getDelegateInternal() 
 - 
innermostDelegateEqualspublic boolean innermostDelegateEquals(java.sql.Connection c) Compares innermost delegate to the given connection.- Parameters:
- c- connection to compare innermost delegate with
- Returns:
- true if innermost delegate equals c
 
 - 
getInnermostDelegatepublic java.sql.Connection getInnermostDelegate() If my underlyingConnectionis not aDelegatingConnection, returns it, otherwise recursively invokes this method on my delegate.Hence this method will return the first delegate that is not a DelegatingConnection, ornullwhen no non-DelegatingConnectiondelegate can be found by traversing this chain.This method is useful when you may have nested DelegatingConnections, and you want to make sure to obtain a "genuine"Connection.- Returns:
- innermost delegate.
 
 - 
getInnermostDelegateInternalpublic final java.sql.Connection getInnermostDelegateInternal() Although this method is public, it is part of the internal API and should not be used by clients. The signature of this method may change at any time including in ways that break backwards compatibility.- Returns:
- innermost delegate.
 
 - 
setDelegatepublic void setDelegate(C connection) Sets my delegate.- Parameters:
- connection- my delegate.
 
 - 
closepublic void close() throws java.sql.SQLExceptionCloses the underlying connection, and close any Statements that were not explicitly closed. Sub-classes that override this method must:- Call passivate()
- Call close (or the equivalent appropriate action) on the wrapped connection
- Set _closed to false
 - Specified by:
- closein interface- java.lang.AutoCloseable
- Specified by:
- closein interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
isClosedInternalprotected boolean isClosedInternal() 
 - 
setClosedInternalprotected void setClosedInternal(boolean closed) 
 - 
closeInternalprotected final void closeInternal() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
handleExceptionprotected void handleException(java.sql.SQLException e) throws java.sql.SQLExceptionHandles the given exception by throwing it.- Parameters:
- e- the exception to throw.
- Throws:
- java.sql.SQLException- the exception to throw.
 
 - 
handleExceptionNoThrowprotected <T extends java.lang.Throwable> T handleExceptionNoThrow(T e) Handles the givenSQLException.- Type Parameters:
- T- The throwable type.
- Parameters:
- e- The SQLException
- Returns:
- the given SQLException
- Since:
- 2.7.0
 
 - 
createStatementpublic java.sql.Statement createStatement() throws java.sql.SQLException- Specified by:
- createStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createStatementpublic java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) throws java.sql.SQLException- Specified by:
- createStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareCallpublic java.sql.CallableStatement prepareCall(java.lang.String sql) throws java.sql.SQLException- Specified by:
- prepareCallin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareCallpublic java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency) throws java.sql.SQLException- Specified by:
- prepareCallin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
clearWarningspublic void clearWarnings() throws java.sql.SQLException- Specified by:
- clearWarningsin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
commitpublic void commit() throws java.sql.SQLException- Specified by:
- commitin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getCacheStatepublic boolean getCacheState() Returns the state caching flag.- Returns:
- the state caching flag
 
 - 
getAutoCommitpublic boolean getAutoCommit() throws java.sql.SQLException- Specified by:
- getAutoCommitin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getCatalogpublic java.lang.String getCatalog() throws java.sql.SQLException- Specified by:
- getCatalogin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getMetaDatapublic java.sql.DatabaseMetaData getMetaData() throws java.sql.SQLException- Specified by:
- getMetaDatain interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getTransactionIsolationpublic int getTransactionIsolation() throws java.sql.SQLException- Specified by:
- getTransactionIsolationin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getTypeMappublic java.util.Map<java.lang.String,java.lang.Class<?>> getTypeMap() throws java.sql.SQLException- Specified by:
- getTypeMapin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getWarningspublic java.sql.SQLWarning getWarnings() throws java.sql.SQLException- Specified by:
- getWarningsin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
isReadOnlypublic boolean isReadOnly() throws java.sql.SQLException- Specified by:
- isReadOnlyin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
nativeSQLpublic java.lang.String nativeSQL(java.lang.String sql) throws java.sql.SQLException- Specified by:
- nativeSQLin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
rollbackpublic void rollback() throws java.sql.SQLException- Specified by:
- rollbackin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getDefaultQueryTimeoutpublic java.lang.Integer getDefaultQueryTimeout() Gets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Returns:
- query timeout limit in seconds; zero means there is no limit.
 
 - 
setDefaultQueryTimeoutpublic void setDefaultQueryTimeout(java.lang.Integer defaultQueryTimeoutSeconds) Sets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Parameters:
- defaultQueryTimeoutSeconds- the new query timeout limit in seconds; zero means there is no limit
 
 - 
setCacheStatepublic void setCacheState(boolean cacheState) Sets the state caching flag.- Parameters:
- cacheState- The new value for the state caching flag
 
 - 
clearCachedStatepublic void clearCachedState() Can be used to clear cached state when it is known that the underlying connection may have been accessed directly.
 - 
setAutoCommitpublic void setAutoCommit(boolean autoCommit) throws java.sql.SQLException- Specified by:
- setAutoCommitin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setCatalogpublic void setCatalog(java.lang.String catalog) throws java.sql.SQLException- Specified by:
- setCatalogin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setReadOnlypublic void setReadOnly(boolean readOnly) throws java.sql.SQLException- Specified by:
- setReadOnlyin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setTransactionIsolationpublic void setTransactionIsolation(int level) throws java.sql.SQLException- Specified by:
- setTransactionIsolationin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setTypeMappublic void setTypeMap(java.util.Map<java.lang.String,java.lang.Class<?>> map) throws java.sql.SQLException- Specified by:
- setTypeMapin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
isClosedpublic boolean isClosed() throws java.sql.SQLException- Specified by:
- isClosedin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
checkOpenprotected void checkOpen() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
activateprotected void activate() 
 - 
passivateprotected void passivate() throws java.sql.SQLException- Throws:
- java.sql.SQLException
 
 - 
getHoldabilitypublic int getHoldability() throws java.sql.SQLException- Specified by:
- getHoldabilityin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setHoldabilitypublic void setHoldability(int holdability) throws java.sql.SQLException- Specified by:
- setHoldabilityin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setSavepointpublic java.sql.Savepoint setSavepoint() throws java.sql.SQLException- Specified by:
- setSavepointin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setSavepointpublic java.sql.Savepoint setSavepoint(java.lang.String name) throws java.sql.SQLException- Specified by:
- setSavepointin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
rollbackpublic void rollback(java.sql.Savepoint savepoint) throws java.sql.SQLException- Specified by:
- rollbackin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
releaseSavepointpublic void releaseSavepoint(java.sql.Savepoint savepoint) throws java.sql.SQLException- Specified by:
- releaseSavepointin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createStatementpublic java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException- Specified by:
- createStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareCallpublic java.sql.CallableStatement prepareCall(java.lang.String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws java.sql.SQLException- Specified by:
- prepareCallin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, int autoGeneratedKeys) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, int[] columnIndexes) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
prepareStatementpublic java.sql.PreparedStatement prepareStatement(java.lang.String sql, java.lang.String[] columnNames) throws java.sql.SQLException- Specified by:
- prepareStatementin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
isWrapperForpublic boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException- Specified by:
- isWrapperForin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 - 
unwrappublic <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException- Specified by:
- unwrapin interface- java.sql.Wrapper
- Throws:
- java.sql.SQLException
 
 - 
createArrayOfpublic java.sql.Array createArrayOf(java.lang.String typeName, java.lang.Object[] elements) throws java.sql.SQLException- Specified by:
- createArrayOfin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createBlobpublic java.sql.Blob createBlob() throws java.sql.SQLException- Specified by:
- createBlobin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createClobpublic java.sql.Clob createClob() throws java.sql.SQLException- Specified by:
- createClobin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createNClobpublic java.sql.NClob createNClob() throws java.sql.SQLException- Specified by:
- createNClobin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createSQLXMLpublic java.sql.SQLXML createSQLXML() throws java.sql.SQLException- Specified by:
- createSQLXMLin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
createStructpublic java.sql.Struct createStruct(java.lang.String typeName, java.lang.Object[] attributes) throws java.sql.SQLException- Specified by:
- createStructin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
isValidpublic boolean isValid(int timeoutSeconds) throws java.sql.SQLException- Specified by:
- isValidin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setClientInfopublic void setClientInfo(java.lang.String name, java.lang.String value) throws java.sql.SQLClientInfoException- Specified by:
- setClientInfoin interface- java.sql.Connection
- Throws:
- java.sql.SQLClientInfoException
 
 - 
setClientInfopublic void setClientInfo(java.util.Properties properties) throws java.sql.SQLClientInfoException- Specified by:
- setClientInfoin interface- java.sql.Connection
- Throws:
- java.sql.SQLClientInfoException
 
 - 
getClientInfopublic java.util.Properties getClientInfo() throws java.sql.SQLException- Specified by:
- getClientInfoin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getClientInfopublic java.lang.String getClientInfo(java.lang.String name) throws java.sql.SQLException- Specified by:
- getClientInfoin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setSchemapublic void setSchema(java.lang.String schema) throws java.sql.SQLException- Specified by:
- setSchemain interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getSchemapublic java.lang.String getSchema() throws java.sql.SQLException- Specified by:
- getSchemain interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
abortpublic void abort(java.util.concurrent.Executor executor) throws java.sql.SQLException- Specified by:
- abortin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
setNetworkTimeoutpublic void setNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds) throws java.sql.SQLException- Specified by:
- setNetworkTimeoutin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 - 
getNetworkTimeoutpublic int getNetworkTimeout() throws java.sql.SQLException- Specified by:
- getNetworkTimeoutin interface- java.sql.Connection
- Throws:
- java.sql.SQLException
 
 
- 
 
-