Class PoolingDataSource.PoolGuardConnectionWrapper<D extends Connection>
java.lang.Object
org.datanucleus.store.rdbms.datasource.dbcp2.AbandonedTrace
org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingConnection<D>
org.datanucleus.store.rdbms.datasource.dbcp2.PoolingDataSource.PoolGuardConnectionWrapper<D>
- All Implemented Interfaces:
AutoCloseable
,Connection
,Wrapper
,TrackedUse
- Enclosing class:
PoolingDataSource<C extends Connection>
private class PoolingDataSource.PoolGuardConnectionWrapper<D extends Connection>
extends DelegatingConnection<D>
PoolGuardConnectionWrapper is a Connection wrapper that makes sure a closed connection cannot be used anymore.
- Since:
- 2.0
-
Field Summary
Fields inherited from interface java.sql.Connection
TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes the underlying connection, and close any Statements that were not explicitly closed.Returns my underlyingConnection
.If my underlyingConnection
is not aDelegatingConnection
, returns it, otherwise recursively invokes this method on my delegate.boolean
isClosed()
Methods inherited from class org.datanucleus.store.rdbms.datasource.dbcp2.DelegatingConnection
abort, activate, checkOpen, clearCachedState, clearWarnings, closeInternal, commit, createArrayOf, createBlob, createClob, createNClob, createSQLXML, createStatement, createStatement, createStatement, createStruct, getAutoCommit, getCacheState, getCatalog, getClientInfo, getClientInfo, getDefaultQueryTimeout, getDelegateInternal, getHoldability, getInnermostDelegateInternal, getMetaData, getNetworkTimeout, getSchema, getTransactionIsolation, getTypeMap, getWarnings, handleException, handleExceptionNoThrow, innermostDelegateEquals, isClosedInternal, isReadOnly, isValid, isWrapperFor, nativeSQL, passivate, prepareCall, prepareCall, prepareCall, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, prepareStatement, releaseSavepoint, rollback, rollback, setAutoCommit, setCacheState, setCatalog, setClientInfo, setClientInfo, setClosedInternal, setDefaultQueryTimeout, setDelegate, setHoldability, setNetworkTimeout, setReadOnly, setSavepoint, setSavepoint, setSchema, setTransactionIsolation, setTypeMap, toString, unwrap
Methods inherited from class org.datanucleus.store.rdbms.datasource.dbcp2.AbandonedTrace
addTrace, clearTrace, getLastUsed, getTrace, removeThisTrace, removeTrace, setLastUsed, setLastUsed
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.sql.Connection
beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid
-
Constructor Details
-
PoolGuardConnectionWrapper
PoolGuardConnectionWrapper(D delegate)
-
-
Method Details
-
getDelegate
Description copied from class:DelegatingConnection
Returns my underlyingConnection
.- Overrides:
getDelegate
in classDelegatingConnection<D extends Connection>
- Returns:
- my underlying
Connection
. - See Also:
-
getInnermostDelegate
Description copied from class:DelegatingConnection
If my underlyingConnection
is 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
, ornull
when no non-DelegatingConnection
delegate can be found by traversing this chain.This method is useful when you may have nested
DelegatingConnection
s, and you want to make sure to obtain a "genuine"Connection
.- Overrides:
getInnermostDelegate
in classDelegatingConnection<D extends Connection>
- Returns:
- innermost delegate.
- See Also:
-
close
Description copied from class:DelegatingConnection
Closes 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceConnection
- Overrides:
close
in classDelegatingConnection<D extends Connection>
- Throws:
SQLException
-
isClosed
- Specified by:
isClosed
in interfaceConnection
- Overrides:
isClosed
in classDelegatingConnection<D extends Connection>
- Throws:
SQLException
-