try
{
while (i < joinedList.size())
{
SoftReference<XASessionImpl> sr = joinedList.get(i++);
XASessionImpl xaSession = sr.get();
if (xaSession != null && xaSession.isLive())
{
xaSession.getTransientNodesManager().getTransactManager().commit();
}
}
}
catch (TransactionException e)
{
if (onePhase)
{
// rollback now
boolean mixedCommit = i > 0;
for (; i < joinedList.size(); i++)
{
SoftReference<XASessionImpl> sr = joinedList.get(i);
XASessionImpl xaSession = sr.get();
if (xaSession != null && xaSession.isLive())
{
xaSession.getTransientNodesManager().getTransactManager().rollback();
}
}
if (mixedCommit)
{