docs: 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();
  		}
  	}