Class DelegatingConnection<C extends Connection>
- Type Parameters:
- C- the Connection type
- All Implemented Interfaces:
- AutoCloseable,- Connection,- Wrapper,- TrackedUse
- Direct Known Subclasses:
- ManagedConnection,- 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 SummaryConstructorsConstructorDescriptionDelegatingConnection(C connection) Creates a wrapper for the Connection which traces this Connection in the AbandonedObjectPool.
- 
Method SummaryModifier and TypeMethodDescriptionvoidprotected voidactivate()protected voidvoidClears the cached state.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) Deprecated.Gets the default query timeout that will be used forStatements created from this connection.Returns my underlyingConnection.protected final CGets the delegate connection.intIf 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) Deprecated.UseisValid(Duration).booleanTests if the connection has not been closed and is still valid.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) Deprecated.voidsetDefaultQueryTimeout(Duration defaultQueryTimeoutDuration) 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, close, getLastUsed, getLastUsedInstant, getTrace, removeThisTrace, removeTrace, setLastUsed, 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:
- connection- the- Connectionto delegate all calls to, may be null (see- ManagedConnection).
 
 
- 
- 
Method Details- 
abort- Specified by:
- abortin interface- Connection
- Throws:
- SQLException
 
- 
activateprotected void activate()
- 
checkOpen- Throws:
- SQLException
 
- 
clearCachedStatepublic void clearCachedState()Clears the cached state. Call when you known that the underlying connection may have been accessed directly.
- 
clearWarnings- Specified by:
- clearWarningsin interface- Connection
- Throws:
- SQLException
 
- 
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 closedtofalse
 - Specified by:
- closein interface- AutoCloseable
- Specified by:
- closein interface- Connection
- Overrides:
- closein class- AbandonedTrace
- Throws:
- SQLException- Ignored here, for subclasses.
 
- Call 
- 
closeInternal- Throws:
- SQLException
 
- 
commit- Specified by:
- commitin interface- Connection
- 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
 
- 
createStatement- Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
createStatement- Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
createStatementpublic Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
- createStatementin interface- Connection
- Throws:
- SQLException
 
- 
createStruct- Specified by:
- createStructin interface- Connection
- Throws:
- SQLException
 
- 
getAutoCommit- Specified by:
- getAutoCommitin interface- Connection
- Throws:
- SQLException
 
- 
getCacheStatepublic boolean getCacheState()Returns the state caching flag.- Returns:
- the state caching flag
 
- 
getCatalog- Specified by:
- getCatalogin interface- Connection
- Throws:
- SQLException
 
- 
getClientInfo- Specified by:
- getClientInfoin interface- Connection
- Throws:
- SQLException
 
- 
getClientInfo- Specified by:
- getClientInfoin interface- Connection
- Throws:
- SQLException
 
- 
getDefaultQueryTimeoutDeprecated.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.
 
- 
getDefaultQueryTimeoutDurationGets 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; zero means there is no limit.
- Since:
- 2.10.0
 
- 
getDelegateReturns my underlyingConnection.- Returns:
- my underlying Connection.
 
- 
getDelegateInternalGets the delegate connection.- Returns:
- the delegate connection.
 
- 
getHoldability- Specified by:
- getHoldabilityin interface- Connection
- Throws:
- SQLException
 
- 
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.
 
- 
getMetaData- Specified by:
- getMetaDatain interface- Connection
- Throws:
- SQLException
 
- 
getNetworkTimeout- Specified by:
- getNetworkTimeoutin interface- Connection
- Throws:
- SQLException
 
- 
getSchema- Specified by:
- getSchemain 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
 
- 
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
 
- 
innermostDelegateEqualsCompares innermost delegate to the given connection.- Parameters:
- c- connection to compare innermost delegate with
- Returns:
- true if innermost delegate equals c
 
- 
isClosed- Specified by:
- isClosedin interface- Connection
- Throws:
- SQLException
 
- 
isClosedInternalprotected boolean isClosedInternal()
- 
isReadOnly- Specified by:
- isReadOnlyin interface- Connection
- Throws:
- SQLException
 
- 
isValidTests if the connection has not been closed and is still valid.- Parameters:
- timeout- The duration to wait for the database operation used to validate the connection to complete.
- Returns:
- See Connection.isValid(int).
- Throws:
- SQLException- See- Connection.isValid(int).
- Since:
- 2.10.0
- See Also:
 
- 
isValidDeprecated.UseisValid(Duration).- Specified by:
- isValidin interface- Connection
- Throws:
- SQLException
 
- 
isWrapperFor- Specified by:
- isWrapperForin interface- Wrapper
- Throws:
- SQLException
 
- 
nativeSQL- Specified by:
- nativeSQLin interface- Connection
- Throws:
- SQLException
 
- 
passivate- 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
 
- 
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
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException - Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatementpublic PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException - Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
prepareStatement- Specified by:
- prepareStatementin interface- Connection
- Throws:
- SQLException
 
- 
releaseSavepoint- Specified by:
- releaseSavepointin interface- Connection
- Throws:
- SQLException
 
- 
rollback- Specified by:
- rollbackin interface- Connection
- Throws:
- SQLException
 
- 
rollback- Specified by:
- rollbackin interface- Connection
- Throws:
- SQLException
 
- 
setAutoCommit- Specified by:
- setAutoCommitin interface- Connection
- Throws:
- SQLException
 
- 
setCacheStatepublic void setCacheState(boolean cacheState) Sets the state caching flag.- Parameters:
- cacheState- The new value for the state caching flag
 
- 
setCatalog- Specified by:
- setCatalogin interface- Connection
- Throws:
- SQLException
 
- 
setClientInfo- Specified by:
- setClientInfoin interface- Connection
- Throws:
- SQLClientInfoException
 
- 
setClientInfo- Specified by:
- setClientInfoin interface- Connection
- Throws:
- SQLClientInfoException
 
- 
setClosedInternalprotected void setClosedInternal(boolean closed) 
- 
setDefaultQueryTimeoutSets the default query timeout that will be used forStatements created from this connection.nullmeans that the driver default will be used.- Parameters:
- defaultQueryTimeoutDuration- the new query timeout limit Duration; zero means there is no limit.
- Since:
- 2.10.0
 
- 
setDefaultQueryTimeoutDeprecated.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.
 
- 
setDelegateSets my delegate.- Parameters:
- connection- my delegate, may be null.
 
- 
setHoldability- Specified by:
- setHoldabilityin interface- Connection
- Throws:
- SQLException
 
- 
setNetworkTimeout- Specified by:
- setNetworkTimeoutin interface- Connection
- Throws:
- SQLException
 
- 
setReadOnly- Specified by:
- setReadOnlyin interface- Connection
- Throws:
- SQLException
 
- 
setSavepoint- Specified by:
- setSavepointin interface- Connection
- Throws:
- SQLException
 
- 
setSavepoint- Specified by:
- setSavepointin interface- Connection
- Throws:
- SQLException
 
- 
setSchema- Specified by:
- setSchemain interface- Connection
- Throws:
- SQLException
 
- 
setTransactionIsolation- Specified by:
- setTransactionIsolationin interface- Connection
- Throws:
- SQLException
 
- 
setTypeMap- Specified by:
- setTypeMapin interface- Connection
- Throws:
- SQLException
 
- 
toStringReturns a string representation of the metadata associated with the innermost delegate connection.
- 
unwrap- Specified by:
- unwrapin interface- Wrapper
- Throws:
- SQLException
 
 
- 
getDefaultQueryTimeoutDuration().