private void CleanupAfterCompletion(DefaultTransactionStatus status) { status.IsCompleted = true; if (status.IsNewSynchronization) { TransactionSynchronizationManager.Clear(); } if (status.IsNewTransaction) { DoCleanupAfterCompletion(status.Transaction); } if (status.SuspendedResources != null) { _logger?.LogDebug("Resuming suspended transaction after completion of inner transaction"); var transaction = status.HasTransaction ? status.Transaction : null; Resume(transaction, (SuspendedResourcesHolder)status.SuspendedResources); } }