Class DelegatingConnection<C extends Connection>
- Type Parameters:
- C- the Connection type
- All Implemented Interfaces:
- AutoCloseable,- Connection,- Wrapper,- TrackedUse
- Direct Known Subclasses:
- PoolableConnection,- PoolingConnection
Connection.
 
 All of the methods from the Connection interface simply check to see that the Connection is 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
- 
Field SummaryFields inherited from interface java.sql.ConnectionTRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
- 
Constructor SummaryConstructorsConstructorDescriptionCreates a wrapper for the Connection which traces this Connection in the AbandonedObjectPool.
- 
Method SummaryModifier and TypeMethodDescriptionvoidprotected voidactivate()protected voidvoidCan be used to clear cached state when it is known that the underlying connection may have been accessed directly.voidvoidclose()Closes the underlying connection, and close any Statements that were not explicitly closed.protected final voidvoidcommit()createArrayOf(String typeName, Object[] elements) createStatement(int resultSetType, int resultSetConcurrency) createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) createStruct(String typeName, Object[] attributes) booleanbooleanReturns the state caching flag.getClientInfo(String name) Gets the default query timeout that will be used forStatements created from this connection.Returns my underlyingConnection.protected final CintIf my underlyingConnectionis not aDelegatingConnection, returns it, otherwise recursively invokes this method on my delegate.final ConnectionAlthough this method is public, it is part of the internal API and should not be used by clients.intintprotected voidHandles the given exception by throwing it.protected <T extends Throwable>
 THandles the givenSQLException.booleanCompares innermost delegate to the given connection.booleanisClosed()protected booleanbooleanbooleanisValid(int timeoutSeconds) booleanisWrapperFor(Class<?> iface) protected voidprepareCall(String sql) prepareCall(String sql, int resultSetType, int resultSetConcurrency) prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) prepareStatement(String sql) prepareStatement(String sql, int autoGeneratedKeys) prepareStatement(String sql, int[] columnIndexes) prepareStatement(String sql, int resultSetType, int resultSetConcurrency) prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) prepareStatement(String sql, String[] columnNames) voidreleaseSavepoint(Savepoint savepoint) voidrollback()voidvoidsetAutoCommit(boolean autoCommit) voidsetCacheState(boolean cacheState) Sets the state caching flag.voidsetCatalog(String catalog) voidsetClientInfo(String name, String value) voidsetClientInfo(Properties properties) protected voidsetClosedInternal(boolean closed) voidsetDefaultQueryTimeout(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(Executor executor, int milliseconds) voidsetReadOnly(boolean readOnly) setSavepoint(String name) voidvoidsetTransactionIsolation(int level) voidsetTypeMap(Map<String, Class<?>> map) toString()Returns a string representation of the metadata associated with the innermost delegate connection.<T> TMethods inherited from class org.apache.tomcat.dbcp.dbcp2.AbandonedTraceaddTrace, clearTrace, getLastUsed, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsedMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.sql.ConnectionbeginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
- 
Constructor Details- 
DelegatingConnectionCreates a wrapper for the Connection which traces this Connection in the AbandonedObjectPool.- Parameters:
- c- the- Connectionto delegate all calls to.
 
 
- 
- 
Method Details- 
toStringReturns a string representation of the metadata associated with the innermost delegate connection.
- 
getDelegateReturns my underlyingConnection.- Returns:
- my underlying Connection.
 
- 
getDelegateInternal
- 
innermostDelegateEqualsCompares innermost delegate to the given connection.- Parameters:
- c- connection to compare innermost delegate with
- Returns:
- true if innermost delegate equals c
 
- 
getInnermostDelegateIf 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.
 
- 
getInnermostDelegateInternalAlthough 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.
 
- 
setDelegateSets my delegate.- Parameters:
- connection- my delegate.
 
- 
closeCloses 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- AutoCloseable
- Specified by:
- closein interface- Connection
- Throws:
- SQLException
 
- 
isClosedInternalprotected boolean isClosedInternal()
- 
setClosedInternalprotected void setClosedInternal(boolean closed) 
- 
closeInternal- Throws:
- SQLException
 
- 
handleExceptionHandles the given exception by throwing it.- Parameters:
- e- the exception to throw.
- Throws:
- SQLException- the exception to throw.
 
- 
handleExceptionNoThrowHandles the givenSQLException.- Type Parameters:
- T- The throwable type.
- Parameters:
- e- The SQLException
- Returns:
- the given SQLException
- Since:
- 2.7.0
 
- 
createStatement- Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
createStatement- Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareCall- Specified by:
- prepareCallin interface- Connection
- Throws:
- SQLException
 
- 
prepareCallpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
- prepareCallin interface- Connection
- Throws:
- SQLException
 
- 
clearWarnings- Specified by:
- clearWarningsin interface- Connection
- Throws:
- SQLException
 
- 
commit- Specified by:
- commitin interface- Connection
- Throws:
- SQLException
 
- 
getCacheStatepublic boolean getCacheState()Returns the state caching flag.- Returns:
- the state caching flag
 
- 
getAutoCommit- Specified by:
- getAutoCommitin interface- Connection
- Throws:
- SQLException
 
- 
getCatalog- Specified by:
- getCatalogin interface- Connection
- Throws:
- SQLException
 
- 
getMetaData- Specified by:
- getMetaDatain interface- Connection
- Throws:
- SQLException
 
- 
getTransactionIsolation- Specified by:
- getTransactionIsolationin interface- Connection
- Throws:
- SQLException
 
- 
getTypeMap- Specified by:
- getTypeMapin interface- Connection
- Throws:
- SQLException
 
- 
getWarnings- Specified by:
- getWarningsin interface- Connection
- Throws:
- SQLException
 
- 
isReadOnly- Specified by:
- isReadOnlyin interface- Connection
- Throws:
- SQLException
 
- 
nativeSQL- Specified by:
- nativeSQLin interface- Connection
- Throws:
- SQLException
 
- 
rollback- Specified by:
- rollbackin interface- Connection
- Throws:
- SQLException
 
- 
getDefaultQueryTimeoutGets 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.
 
- 
setDefaultQueryTimeoutSets 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.
- 
setAutoCommit- Specified by:
- setAutoCommitin interface- Connection
- Throws:
- SQLException
 
- 
setCatalog- Specified by:
- setCatalogin interface- Connection
- Throws:
- SQLException
 
- 
setReadOnly- Specified by:
- setReadOnlyin interface- Connection
- Throws:
- SQLException
 
- 
setTransactionIsolation- Specified by:
- setTransactionIsolationin interface- Connection
- Throws:
- SQLException
 
- 
setTypeMap- Specified by:
- setTypeMapin interface- Connection
- Throws:
- SQLException
 
- 
isClosed- Specified by:
- isClosedin interface- Connection
- Throws:
- SQLException
 
- 
checkOpen- Throws:
- SQLException
 
- 
activateprotected void activate()
- 
passivate- Throws:
- SQLException
 
- 
getHoldability- Specified by:
- getHoldabilityin interface- Connection
- Throws:
- SQLException
 
- 
setHoldability- Specified by:
- setHoldabilityin interface- Connection
- Throws:
- SQLException
 
- 
setSavepoint- Specified by:
- setSavepointin interface- Connection
- Throws:
- SQLException
 
- 
setSavepoint- Specified by:
- setSavepointin interface- Connection
- Throws:
- SQLException
 
- 
rollback- Specified by:
- rollbackin interface- Connection
- Throws:
- SQLException
 
- 
releaseSavepoint- Specified by:
- releaseSavepointin interface- Connection
- Throws:
- SQLException
 
- 
createStatementpublic Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareCallpublic CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
- prepareCallin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
isWrapperFor- Specified by:
- isWrapperForin interface- Wrapper
- Throws:
- SQLException
 
- 
unwrap- Specified by:
- unwrapin interface- Wrapper
- Throws:
- SQLException
 
- 
createArrayOf- Specified by:
- createArrayOfin interface- Connection
- Throws:
- SQLException
 
- 
createBlob- Specified by:
- createBlobin interface- Connection
- Throws:
- SQLException
 
- 
createClob- Specified by:
- createClobin interface- Connection
- Throws:
- SQLException
 
- 
createNClob- Specified by:
- createNClobin interface- Connection
- Throws:
- SQLException
 
- 
createSQLXML- Specified by:
- createSQLXMLin interface- Connection
- Throws:
- SQLException
 
- 
createStruct- Specified by:
- createStructin interface- Connection
- Throws:
- SQLException
 
- 
isValid- Specified by:
- isValidin interface- Connection
- Throws:
- SQLException
 
- 
setClientInfo- Specified by:
- setClientInfoin interface- Connection
- Throws:
- SQLClientInfoException
 
- 
setClientInfo- Specified by:
- setClientInfoin interface- Connection
- Throws:
- SQLClientInfoException
 
- 
getClientInfo- Specified by:
- getClientInfoin interface- Connection
- Throws:
- SQLException
 
- 
getClientInfo- Specified by:
- getClientInfoin interface- Connection
- Throws:
- SQLException
 
- 
setSchema- Specified by:
- setSchemain interface- Connection
- Throws:
- SQLException
 
- 
getSchema- Specified by:
- getSchemain interface- Connection
- Throws:
- SQLException
 
- 
abort- Specified by:
- abortin interface- Connection
- Throws:
- SQLException
 
- 
setNetworkTimeout- Specified by:
- setNetworkTimeoutin interface- Connection
- Throws:
- SQLException
 
- 
getNetworkTimeout- Specified by:
- getNetworkTimeoutin interface- Connection
- Throws:
- SQLException
 
 
-