code: public boolean recover(RecoveryManager recoveryManager, ClassLoader cl, Xid[] xids) {
          boolean success = true; // flag to indicate that we recovered all RMs
  
          if (tc.isEntryEnabled())
              Tr.entry(tc, "recover", new Object[] { this, _failureScopeController.serverName() });
  
          final int restartEpoch = recoveryManager.getCurrentEpoch();
          final byte[] cruuid = recoveryManager.getApplId();
  
          for (PartnerLogData pld : _partnerLogTable) {
              if (!pld.recover(cl, xids, null, cruuid, restartEpoch)) {
                  success = false;
              }
  
              // Determine if shutdown processing started on another thread. 
              // If it has, no further action can be taken.
              if (recoveryManager.shutdownInProgress()) {
                  success = false;
                  break;
              }
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "recover", success);
          return success;
      }
docs: Determine XA RMs needing recovery.
  
  <p>
  For each resource manager known to the transaction service all
  indoubt transactions are located.
  
  @param cl A class loader for contacting XA RMs