if (manager.getCommitter() instanceof NamedXAResource) {
String xaResourceName = manager.getResourceName();
NamedXAResourceFactory namedXAResourceFactory = txManager.getNamedXAResourceFactory(xaResourceName);
if (namedXAResourceFactory != null) {
try {
TransactionBranch newManager = new ReturnableTransactionBranch(manager.getBranchXid(), namedXAResourceFactory);
remove(index);
rms.add(index, newManager);
//loop will try this one again immediately.
} catch (SystemException e1) {
//try again later