docs: private void reassociateConnectionHandle(Object connection,
                                               MCWrapper fromMCWrapper,
                                               MCWrapper toMCWrapper,
                                               UOWCoordinator uowCoord) throws ResourceException {
  
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(this, tc, "reassociateConnectionHandle");
  
          try {
              toMCWrapper.associateConnection(connection, fromMCWrapper);
          } catch (ResourceException e) {
  
              /*
               * If the Resource Adapter throws a ResourceException and we are not in a
               * transaction and there are no other connections open on the ManagedConnection,
               * return the ManagedConnection to the pool before
               * rethrowing the exception. The ManagedConnection is probably OK - the exception
               * may only be a logon failure or similar so the MC shouldn't be 'lost'.
               *
               * If we are in a transaction, just throw the exception. Assume we will cleanup during
               * the aftercompletion call on the tran wrapper.
               */
  
              com.ibm.ws.ffdc.FFDCFilter.processException(e, "com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle", "479", this);
              if (uowCoord == null && toMCWrapper.getHandleCount() == 0) {
                  try {
                      toMCWrapper.releaseToPoolManager();
                  } catch (Exception exp) { // don't rethrow, already on exception path
                      com.ibm.ws.ffdc.FFDCFilter.processException(exp, "com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle", "487", this);
                      //if (TraceComponent.isAnyTracingEnabled()  && tc.isDebugEnabled())
                      Tr.error(tc, "FAILED_CONNECTION_RELEASE_J2CA0022", new Object[] { exp, toMCWrapper.gConfigProps.cfName });
                  }
              }
              throw e;
          } catch (java.lang.Exception e) {
              com.ibm.ws.ffdc.FFDCFilter.processException(e,
                                                          "com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle",
                                                          "495", this);
              if (isTraceOn && tc.isDebugEnabled()) {
                  Tr.debug(this, tc, "reassociateConnectionHandle: Caught a Non resource exception from mc.associateConnection()");
              }
              Tr.error(tc, "FAILED_CONNECTION_J2CA0021", new Object[] { e, toMCWrapper.gConfigProps.cfName });
              /*
               * If the Resource Adapter throws an Exception and we are not in a
               * transaction and there are no other connections open on the ManagedConnection,
               * return the ManagedConnection to the pool before
               * rethrowing the exception. The ManagedConnection is probably OK - the exception
               * may only be a logon failure or similar so the MC shouldn't be 'lost'.
               *
               * If we are in a transaction, just throw the exception. Assume we will cleanup during
               * the aftercompletion call on the tran wrapper.
               */
  
              if (uowCoord == null && toMCWrapper.getHandleCount() == 0) {
                  try {
                      toMCWrapper.releaseToPoolManager();
                  } catch (Exception exp) { // don't rethrow, already on exception path
                      com.ibm.ws.ffdc.FFDCFilter.processException(exp,
                                                                  "com.ibm.ejs.j2c.ConnectionManager.reassociateConnectionHandle",
                                                                  "518", this);
                      //if (TraceComponent.isAnyTracingEnabled()  && tc.isDebugEnabled())
                      Tr.error(tc, "FAILED_CONNECTION_RELEASE_J2CA0022", new Object[] { exp, toMCWrapper.gConfigProps.cfName });
                  }
              }
              ResourceException re = new ResourceException("reassociateConnectionHandle: caught Exception");
              re.initCause(e);
              throw re;
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(this, tc, "reassociateConnectionHandle");
  
      }