test_class.declarator: testClass
test_class.modifier: private
test_class.original_string: private BoneCP testClass;
test_class.type: BoneCP
test_class.var_name: testClass
test_class.declarator: mockConfig
test_class.modifier: private
test_class.original_string: private BoneCPConfig mockConfig;
test_class.type: BoneCPConfig
test_class.var_name: mockConfig
test_class.declarator: mockPartition
test_class.modifier: private
test_class.original_string: private ConnectionPartition mockPartition;
test_class.type: ConnectionPartition
test_class.var_name: mockPartition
test_class.declarator: mockKeepAliveScheduler
test_class.modifier: private
test_class.original_string: private ScheduledExecutorService mockKeepAliveScheduler;
test_class.type: ScheduledExecutorService
test_class.var_name: mockKeepAliveScheduler
test_class.declarator: mockConnectionsScheduler
test_class.modifier: private
test_class.original_string: private ExecutorService mockConnectionsScheduler;
test_class.type: ExecutorService
test_class.var_name: mockConnectionsScheduler
test_class.declarator: mockConnectionHandles
test_class.modifier: private
test_class.original_string: private LinkedBlockingQueue<ConnectionHandle> mockConnectionHandles;
test_class.type: LinkedBlockingQueue<ConnectionHandle>
test_class.var_name: mockConnectionHandles
test_class.declarator: mockConnection
test_class.modifier: private
test_class.original_string: private ConnectionHandle mockConnection;
test_class.type: ConnectionHandle
test_class.var_name: mockConnection
test_class.declarator: mockLock
test_class.modifier: private
test_class.original_string: private Lock mockLock;
test_class.type: Lock
test_class.var_name: mockLock
test_class.declarator: mockLogger
test_class.modifier: private
test_class.original_string: private Logger mockLogger;
test_class.type: Logger
test_class.var_name: mockLogger
test_class.declarator: mockDatabaseMetadata
test_class.modifier: private
test_class.original_string: private DatabaseMetaData mockDatabaseMetadata;
test_class.type: DatabaseMetaData
test_class.var_name: mockDatabaseMetadata
test_class.declarator: mockResultSet
test_class.modifier: private
test_class.original_string: private MockResultSet mockResultSet;
test_class.type: MockResultSet
test_class.var_name: mockResultSet
test_class.declarator: driver
test_class.modifier: private
test_class.original_string: private MockJDBCDriver driver;
test_class.type: MockJDBCDriver
test_class.var_name: driver
test_class.declarator: mockPool
test_class.modifier: private
test_class.original_string: private BoneCP mockPool;
test_class.type: BoneCP
test_class.var_name: mockPool
test_class.file: bonecp/src/test/java/com/jolbox/bonecp/TestBoneCP.java
test_class.identifier: TestBoneCP
test_case.body: @Test
  	public void testInternalReleaseConnection() throws InterruptedException, SQLException {
  		// Test #1: Test normal case where connection is considered to be not broken
  		// should reset last connection use
  		mockConnection.setConnectionLastUsedInMs(anyLong());
  		expectLastCall().once();
  		expect(mockConnection.getOriginatingPartition()).andReturn(mockPartition).anyTimes();
  		expect(mockPartition.getFreeConnections()).andReturn(mockConnectionHandles).anyTimes();
  		expect(mockPartition.getAvailableConnections()).andReturn(1).anyTimes();
  		Connection mockRealConnection = EasyMock.createNiceMock(Connection.class);
  		expect(mockConnection.getInternalConnection()).andReturn(mockRealConnection).anyTimes();
  	
  		//		expect(mockConnectionHandles.offer(mockConnection)).andReturn(false).anyTimes();
  		expect(mockConnectionHandles.offer(mockConnection)).andReturn(true).once();
  
  		replay(mockRealConnection, mockConnection,mockPartition, mockConnectionHandles);
  		testClass.internalReleaseConnection(mockConnection);
  		verify(mockConnection,mockPartition, mockConnectionHandles);
  	}
test_case.class_method_signature: TestBoneCP.testInternalReleaseConnection()
test_case.full_signature: @Test public void testInternalReleaseConnection()
test_case.identifier: testInternalReleaseConnection
test_case.invocations: setConnectionLastUsedInMs anyLong once expectLastCall anyTimes andReturn expect getOriginatingPartition anyTimes andReturn expect getFreeConnections anyTimes andReturn expect getAvailableConnections createNiceMock anyTimes andReturn expect getInternalConnection once andReturn expect offer replay internalReleaseConnection verify
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testInternalReleaseConnection()
focal_class.declarator: THREAD_CLOSE_CONNECTION_WARNING = "Thread close connection monitoring has been enabled. This will negatively impact on your performance. Only enable this option for debugging purposes!"
focal_class.modifier: private static final
focal_class.original_string: private static final String THREAD_CLOSE_CONNECTION_WARNING = "Thread close connection monitoring has been enabled. This will negatively impact on your performance. Only enable this option for debugging purposes!";
focal_class.type: String
focal_class.var_name: THREAD_CLOSE_CONNECTION_WARNING
focal_class.declarator: serialVersionUID = -8386816681977604817L
focal_class.modifier: private static final
focal_class.original_string: private static final long serialVersionUID = -8386816681977604817L;
focal_class.type: long
focal_class.var_name: serialVersionUID
focal_class.declarator: ERROR_TEST_CONNECTION = "Unable to open a test connection to the given database. JDBC url = %s, username = %s. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: %s"
focal_class.modifier: private static final
focal_class.original_string: private static final String ERROR_TEST_CONNECTION = "Unable to open a test connection to the given database. JDBC url = %s, username = %s. Terminating connection pool (set lazyInit to true if you expect to start your database after your app). Original Exception: %s";
focal_class.type: String
focal_class.var_name: ERROR_TEST_CONNECTION
focal_class.declarator: SHUTDOWN_LOCATION_TRACE = "Attempting to obtain a connection from a pool that has already been shutdown. \nStack trace of location where pool was shutdown follows:\n"
focal_class.modifier: private static final
focal_class.original_string: private static final String SHUTDOWN_LOCATION_TRACE = "Attempting to obtain a connection from a pool that has already been shutdown. \nStack trace of location where pool was shutdown follows:\n";
focal_class.type: String
focal_class.var_name: SHUTDOWN_LOCATION_TRACE
focal_class.declarator: UNCLOSED_EXCEPTION_MESSAGE = "Connection obtained from thread [%s] was never closed. \nStack trace of location where connection was obtained follows:\n"
focal_class.modifier: private static final
focal_class.original_string: private static final String UNCLOSED_EXCEPTION_MESSAGE = "Connection obtained from thread [%s] was never closed. \nStack trace of location where connection was obtained follows:\n";
focal_class.type: String
focal_class.var_name: UNCLOSED_EXCEPTION_MESSAGE
focal_class.declarator: MBEAN_CONFIG = "com.jolbox.bonecp:type=BoneCPConfig"
focal_class.modifier: public static final
focal_class.original_string: public static final String MBEAN_CONFIG = "com.jolbox.bonecp:type=BoneCPConfig";
focal_class.type: String
focal_class.var_name: MBEAN_CONFIG
focal_class.declarator: MBEAN_BONECP = "com.jolbox.bonecp:type=BoneCP"
focal_class.modifier: public static final
focal_class.original_string: public static final String MBEAN_BONECP = "com.jolbox.bonecp:type=BoneCP";
focal_class.type: String
focal_class.var_name: MBEAN_BONECP
focal_class.declarator: METADATATABLE = new String[] {"TABLE"}
focal_class.modifier: private static final
focal_class.original_string: private static final String[] METADATATABLE = new String[] {"TABLE"};
focal_class.type: String[]
focal_class.var_name: METADATATABLE
focal_class.declarator: KEEPALIVEMETADATA = "BONECPKEEPALIVE"
focal_class.modifier: private static final
focal_class.original_string: private static final String KEEPALIVEMETADATA = "BONECPKEEPALIVE";
focal_class.type: String
focal_class.var_name: KEEPALIVEMETADATA
focal_class.declarator: poolAvailabilityThreshold
focal_class.modifier: protected final
focal_class.original_string: protected final int poolAvailabilityThreshold;
focal_class.type: int
focal_class.var_name: poolAvailabilityThreshold
focal_class.declarator: partitionCount
focal_class.modifier: protected
focal_class.original_string: protected int partitionCount;
focal_class.type: int
focal_class.var_name: partitionCount
focal_class.declarator: partitions
focal_class.modifier: protected
focal_class.original_string: protected ConnectionPartition[] partitions;
focal_class.type: ConnectionPartition[]
focal_class.var_name: partitions
focal_class.declarator: keepAliveScheduler
focal_class.modifier: @VisibleForTesting protected
focal_class.original_string: @VisibleForTesting protected ScheduledExecutorService keepAliveScheduler;
focal_class.type: ScheduledExecutorService
focal_class.var_name: keepAliveScheduler
focal_class.declarator: maxAliveScheduler
focal_class.modifier: private
focal_class.original_string: private ScheduledExecutorService maxAliveScheduler;
focal_class.type: ScheduledExecutorService
focal_class.var_name: maxAliveScheduler
focal_class.declarator: connectionsScheduler
focal_class.modifier: private
focal_class.original_string: private ExecutorService connectionsScheduler;
focal_class.type: ExecutorService
focal_class.var_name: connectionsScheduler
focal_class.declarator: config
focal_class.modifier: @VisibleForTesting protected
focal_class.original_string: @VisibleForTesting protected BoneCPConfig config;
focal_class.type: BoneCPConfig
focal_class.var_name: config
focal_class.declarator: asyncExecutor
focal_class.modifier: private
focal_class.original_string: private ListeningExecutorService asyncExecutor;
focal_class.type: ListeningExecutorService
focal_class.var_name: asyncExecutor
focal_class.declarator: logger = LoggerFactory.getLogger(BoneCP.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(BoneCP.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: mbs
focal_class.modifier: private
focal_class.original_string: private MBeanServer mbs;
focal_class.type: MBeanServer
focal_class.var_name: mbs
focal_class.declarator: closeConnectionWatch = false
focal_class.modifier: protected
focal_class.original_string: protected boolean closeConnectionWatch = false;
focal_class.type: boolean
focal_class.var_name: closeConnectionWatch
focal_class.declarator: closeConnectionExecutor
focal_class.modifier: private
focal_class.original_string: private ExecutorService closeConnectionExecutor;
focal_class.type: ExecutorService
focal_class.var_name: closeConnectionExecutor
focal_class.declarator: poolShuttingDown
focal_class.modifier: protected volatile
focal_class.original_string: protected volatile boolean poolShuttingDown;
focal_class.type: boolean
focal_class.var_name: poolShuttingDown
focal_class.declarator: shutdownStackTrace
focal_class.modifier: protected
focal_class.original_string: protected String shutdownStackTrace;
focal_class.type: String
focal_class.var_name: shutdownStackTrace
focal_class.declarator: finalizableRefs = new ConcurrentHashMap<Connection, Reference<ConnectionHandle>>()
focal_class.modifier: private final
focal_class.original_string: private final Map<Connection, Reference<ConnectionHandle>> finalizableRefs = new ConcurrentHashMap<Connection, Reference<ConnectionHandle>>();
focal_class.type: Map<Connection, Reference<ConnectionHandle>>
focal_class.var_name: finalizableRefs
focal_class.declarator: finalizableRefQueue
focal_class.modifier: private transient
focal_class.original_string: private transient FinalizableReferenceQueue finalizableRefQueue;
focal_class.type: FinalizableReferenceQueue
focal_class.var_name: finalizableRefQueue
focal_class.declarator: connectionTimeoutInMs
focal_class.modifier: protected
focal_class.original_string: protected long connectionTimeoutInMs;
focal_class.type: long
focal_class.var_name: connectionTimeoutInMs
focal_class.declarator: closeConnectionWatchTimeoutInMs
focal_class.modifier: private
focal_class.original_string: private long closeConnectionWatchTimeoutInMs;
focal_class.type: long
focal_class.var_name: closeConnectionWatchTimeoutInMs
focal_class.declarator: statisticsEnabled
focal_class.modifier: protected
focal_class.original_string: protected boolean statisticsEnabled;
focal_class.type: boolean
focal_class.var_name: statisticsEnabled
focal_class.declarator: statistics = new Statistics(this)
focal_class.modifier: protected
focal_class.original_string: protected Statistics statistics = new Statistics(this);
focal_class.type: Statistics
focal_class.var_name: statistics
focal_class.declarator: nullOnConnectionTimeout
focal_class.modifier: @VisibleForTesting protected
focal_class.original_string: @VisibleForTesting protected boolean nullOnConnectionTimeout;
focal_class.type: boolean
focal_class.var_name: nullOnConnectionTimeout
focal_class.declarator: resetConnectionOnClose
focal_class.modifier: @VisibleForTesting
  	protected
focal_class.original_string: @VisibleForTesting
  	protected boolean resetConnectionOnClose;
focal_class.type: boolean
focal_class.var_name: resetConnectionOnClose
focal_class.declarator: cachedPoolStrategy
focal_class.modifier: protected
focal_class.original_string: protected boolean cachedPoolStrategy;
focal_class.type: boolean
focal_class.var_name: cachedPoolStrategy
focal_class.declarator: connectionStrategy
focal_class.modifier: protected
focal_class.original_string: protected ConnectionStrategy connectionStrategy;
focal_class.type: ConnectionStrategy
focal_class.var_name: connectionStrategy
focal_class.declarator: dbIsDown = new AtomicBoolean()
focal_class.modifier: private
focal_class.original_string: private AtomicBoolean dbIsDown = new AtomicBoolean();
focal_class.type: AtomicBoolean
focal_class.var_name: dbIsDown
focal_class.declarator: clientInfo
focal_class.modifier: @VisibleForTesting protected
focal_class.original_string: @VisibleForTesting protected Properties clientInfo;
focal_class.type: Properties
focal_class.var_name: clientInfo
focal_class.declarator: driverInitialized = false
focal_class.modifier: @VisibleForTesting protected volatile
focal_class.original_string: @VisibleForTesting protected volatile boolean driverInitialized = false;
focal_class.type: boolean
focal_class.var_name: driverInitialized
focal_class.declarator: jvmMajorVersion
focal_class.modifier: protected
focal_class.original_string: protected int jvmMajorVersion;
focal_class.type: int
focal_class.var_name: jvmMajorVersion
focal_class.declarator: connectionClass = "java.sql.Connection"
focal_class.modifier: protected static
focal_class.original_string: protected static String connectionClass = "java.sql.Connection";
focal_class.type: String
focal_class.var_name: connectionClass
focal_class.file: bonecp/src/main/java/com/jolbox/bonecp/BoneCP.java
focal_class.identifier: BoneCP
focal_class.interfaces: implements Serializable, Closeable
focal_class.class_method_signature: BoneCP.shutdown()
focal_class.full_signature: public synchronized void shutdown()
focal_class.identifier: shutdown
focal_class.modifiers: public synchronized
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutdown()
focal_class.class_method_signature: BoneCP.unregisterDriver()
focal_class.full_signature: protected void unregisterDriver()
focal_class.identifier: unregisterDriver
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void unregisterDriver()
focal_class.class_method_signature: BoneCP.close()
focal_class.full_signature: public void close()
focal_class.identifier: close
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: BoneCP.destroyConnection(ConnectionHandle conn)
focal_class.full_signature: protected void destroyConnection(ConnectionHandle conn)
focal_class.identifier: destroyConnection
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle conn)
focal_class.return: void
focal_class.signature: void destroyConnection(ConnectionHandle conn)
focal_class.class_method_signature: BoneCP.postDestroyConnection(ConnectionHandle handle)
focal_class.full_signature: protected void postDestroyConnection(ConnectionHandle handle)
focal_class.identifier: postDestroyConnection
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle handle)
focal_class.return: void
focal_class.signature: void postDestroyConnection(ConnectionHandle handle)
focal_class.class_method_signature: BoneCP.obtainInternalConnection(ConnectionHandle connectionHandle)
focal_class.full_signature: protected Connection obtainInternalConnection(ConnectionHandle connectionHandle)
focal_class.identifier: obtainInternalConnection
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle connectionHandle)
focal_class.return: Connection
focal_class.signature: Connection obtainInternalConnection(ConnectionHandle connectionHandle)
focal_class.class_method_signature: BoneCP.obtainRawInternalConnection()
focal_class.full_signature: protected Connection obtainRawInternalConnection()
focal_class.identifier: obtainRawInternalConnection
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Connection
focal_class.signature: Connection obtainRawInternalConnection()
focal_class.class_method_signature: BoneCP.BoneCP(BoneCPConfig config)
focal_class.full_signature: public  BoneCP(BoneCPConfig config)
focal_class.identifier: BoneCP
focal_class.modifiers: public
focal_class.parameters: (BoneCPConfig config)
focal_class.signature:  BoneCP(BoneCPConfig config)
focal_class.class_method_signature: BoneCP.registerUnregisterJMX(boolean doRegister)
focal_class.full_signature: protected void registerUnregisterJMX(boolean doRegister)
focal_class.identifier: registerUnregisterJMX
focal_class.modifiers: protected
focal_class.parameters: (boolean doRegister)
focal_class.return: void
focal_class.signature: void registerUnregisterJMX(boolean doRegister)
focal_class.class_method_signature: BoneCP.getConnection()
focal_class.full_signature: public Connection getConnection()
focal_class.identifier: getConnection
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Connection
focal_class.signature: Connection getConnection()
focal_class.class_method_signature: BoneCP.watchConnection(ConnectionHandle connectionHandle)
focal_class.full_signature: protected void watchConnection(ConnectionHandle connectionHandle)
focal_class.identifier: watchConnection
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle connectionHandle)
focal_class.return: void
focal_class.signature: void watchConnection(ConnectionHandle connectionHandle)
focal_class.class_method_signature: BoneCP.captureStackTrace(String message)
focal_class.full_signature: protected String captureStackTrace(String message)
focal_class.identifier: captureStackTrace
focal_class.modifiers: protected
focal_class.parameters: (String message)
focal_class.return: String
focal_class.signature: String captureStackTrace(String message)
focal_class.class_method_signature: BoneCP.getAsyncConnection()
focal_class.full_signature: public ListenableFuture<Connection> getAsyncConnection()
focal_class.identifier: getAsyncConnection
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ListenableFuture<Connection>
focal_class.signature: ListenableFuture<Connection> getAsyncConnection()
focal_class.class_method_signature: BoneCP.maybeSignalForMoreConnections(ConnectionPartition connectionPartition)
focal_class.full_signature: protected void maybeSignalForMoreConnections(ConnectionPartition connectionPartition)
focal_class.identifier: maybeSignalForMoreConnections
focal_class.modifiers: protected
focal_class.parameters: (ConnectionPartition connectionPartition)
focal_class.return: void
focal_class.signature: void maybeSignalForMoreConnections(ConnectionPartition connectionPartition)
focal_class.class_method_signature: BoneCP.releaseConnection(Connection connection)
focal_class.full_signature: protected void releaseConnection(Connection connection)
focal_class.identifier: releaseConnection
focal_class.modifiers: protected
focal_class.parameters: (Connection connection)
focal_class.return: void
focal_class.signature: void releaseConnection(Connection connection)
focal_class.class_method_signature: BoneCP.internalReleaseConnection(ConnectionHandle connectionHandle)
focal_class.full_signature: protected void internalReleaseConnection(ConnectionHandle connectionHandle)
focal_class.identifier: internalReleaseConnection
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle connectionHandle)
focal_class.return: void
focal_class.signature: void internalReleaseConnection(ConnectionHandle connectionHandle)
focal_class.class_method_signature: BoneCP.putConnectionBackInPartition(ConnectionHandle connectionHandle)
focal_class.full_signature: protected void putConnectionBackInPartition(ConnectionHandle connectionHandle)
focal_class.identifier: putConnectionBackInPartition
focal_class.modifiers: protected
focal_class.parameters: (ConnectionHandle connectionHandle)
focal_class.return: void
focal_class.signature: void putConnectionBackInPartition(ConnectionHandle connectionHandle)
focal_class.class_method_signature: BoneCP.isConnectionHandleAlive(ConnectionHandle connection)
focal_class.full_signature: public boolean isConnectionHandleAlive(ConnectionHandle connection)
focal_class.identifier: isConnectionHandleAlive
focal_class.modifiers: public
focal_class.parameters: (ConnectionHandle connection)
focal_class.return: boolean
focal_class.signature: boolean isConnectionHandleAlive(ConnectionHandle connection)
focal_class.class_method_signature: BoneCP.closeStatement(Statement stmt, boolean result)
focal_class.full_signature: private boolean closeStatement(Statement stmt, boolean result)
focal_class.identifier: closeStatement
focal_class.modifiers: private
focal_class.parameters: (Statement stmt, boolean result)
focal_class.return: boolean
focal_class.signature: boolean closeStatement(Statement stmt, boolean result)
focal_class.class_method_signature: BoneCP.getTotalLeased()
focal_class.full_signature: public int getTotalLeased()
focal_class.identifier: getTotalLeased
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getTotalLeased()
focal_class.class_method_signature: BoneCP.getTotalFree()
focal_class.full_signature: public int getTotalFree()
focal_class.identifier: getTotalFree
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getTotalFree()
focal_class.class_method_signature: BoneCP.getTotalCreatedConnections()
focal_class.full_signature: public int getTotalCreatedConnections()
focal_class.identifier: getTotalCreatedConnections
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getTotalCreatedConnections()
focal_class.class_method_signature: BoneCP.getConfig()
focal_class.full_signature: public BoneCPConfig getConfig()
focal_class.identifier: getConfig
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: BoneCPConfig
focal_class.signature: BoneCPConfig getConfig()
focal_class.class_method_signature: BoneCP.getFinalizableRefs()
focal_class.full_signature: protected Map<Connection, Reference<ConnectionHandle>> getFinalizableRefs()
focal_class.identifier: getFinalizableRefs
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: Map<Connection, Reference<ConnectionHandle>>
focal_class.signature: Map<Connection, Reference<ConnectionHandle>> getFinalizableRefs()
focal_class.class_method_signature: BoneCP.getFinalizableRefQueue()
focal_class.full_signature: protected FinalizableReferenceQueue getFinalizableRefQueue()
focal_class.identifier: getFinalizableRefQueue
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: FinalizableReferenceQueue
focal_class.signature: FinalizableReferenceQueue getFinalizableRefQueue()
focal_class.class_method_signature: BoneCP.getStatistics()
focal_class.full_signature: public Statistics getStatistics()
focal_class.identifier: getStatistics
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Statistics
focal_class.signature: Statistics getStatistics()
focal_class.class_method_signature: BoneCP.getDbIsDown()
focal_class.full_signature: public AtomicBoolean getDbIsDown()
focal_class.identifier: getDbIsDown
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AtomicBoolean
focal_class.signature: AtomicBoolean getDbIsDown()
focal_method.body: protected void internalReleaseConnection(ConnectionHandle connectionHandle) throws SQLException {
  		if (!this.cachedPoolStrategy){
  			connectionHandle.clearStatementCaches(false);
  		}
  
  		if (connectionHandle.getReplayLog() != null){
  			connectionHandle.getReplayLog().clear();
  			connectionHandle.recoveryResult.getReplaceTarget().clear();
  		}
  
  		if (connectionHandle.isExpired() || 
  				(!this.poolShuttingDown 
  						&& connectionHandle.isPossiblyBroken()
  				&& !isConnectionHandleAlive(connectionHandle))){
  
              if (connectionHandle.isExpired()) {
                  connectionHandle.internalClose();
              }
  
  			ConnectionPartition connectionPartition = connectionHandle.getOriginatingPartition();
  			postDestroyConnection(connectionHandle);
  
  			maybeSignalForMoreConnections(connectionPartition);
  			connectionHandle.clearStatementCaches(true);
  			return; // don't place back in queue - connection is broken or expired.
  		}
  
  
  		connectionHandle.setConnectionLastUsedInMs(System.currentTimeMillis());
  		if (!this.poolShuttingDown){
  			putConnectionBackInPartition(connectionHandle);
  		} else {
  			connectionHandle.internalClose();
  		}
  	}
focal_method.class_method_signature: BoneCP.internalReleaseConnection(ConnectionHandle connectionHandle)
focal_method.full_signature: protected void internalReleaseConnection(ConnectionHandle connectionHandle)
focal_method.identifier: internalReleaseConnection
focal_method.invocations: clearStatementCaches getReplayLog clear getReplayLog clear getReplaceTarget isExpired isPossiblyBroken isConnectionHandleAlive isExpired internalClose getOriginatingPartition postDestroyConnection maybeSignalForMoreConnections clearStatementCaches setConnectionLastUsedInMs currentTimeMillis putConnectionBackInPartition internalClose
focal_method.modifiers: protected
focal_method.parameters: (ConnectionHandle connectionHandle)
focal_method.return: void
focal_method.signature: void internalReleaseConnection(ConnectionHandle connectionHandle)