in geronimo-connector/src/main/java/org/apache/geronimo/connector/outbound/connectiontracking/ConnectionTrackingCoordinator.java [173:206]
public void handleReleased(ConnectionTrackingInterceptor connectionTrackingInterceptor,
ConnectionInfo connectionInfo,
ConnectionReturnAction connectionReturnAction) {
ConnectorInstanceContext currentContext = currentInstanceContexts.get();
if (currentContext == null) {
return;
}
Map<ConnectionTrackingInterceptor, Set<ConnectionInfo>> resources = currentContext.getConnectionManagerMap();
Set<ConnectionInfo> infos = resources.get(connectionTrackingInterceptor);
if (infos != null) {
if (connectionInfo.getConnectionHandle() == null) {
//destroy was called as a result of an error
ManagedConnectionInfo mci = connectionInfo.getManagedConnectionInfo();
Collection<ConnectionInfo> toRemove = mci.getConnectionInfos();
infos.removeAll(toRemove);
} else {
infos.remove(connectionInfo);
}
} else {
if ( log.isLoggable(Level.FINEST)) {
log.log(Level.FINEST,"No infos found for handle " + connectionInfo.getConnectionHandle() +
" for MCI: " + connectionInfo.getManagedConnectionInfo() +
" for MC: " + connectionInfo.getManagedConnectionInfo().getManagedConnection() +
" for CTI: " + connectionTrackingInterceptor, new Exception("Stack Trace"));
}
}
// NOTE: This method is also called by DissociatableManagedConnection when a connection has been
// dissociated in addition to the normal connection closed notification, but this is not a problem
// because DissociatableManagedConnection are not proied so this method will have no effect
closeProxyConnection(connectionInfo);
}