{
jtsLogger.loggerI18N.warn("com.arjuna.ats.jts.excalledagain", new Object[]
{ "ExplicitInterposition.registerTransaction" });
}
throw new InterpositionFailed();
}
if ((ctx == null) || (ctx.current.coord == null)) // invalid
throw new INVALID_TRANSACTION(ExceptionCodes.INVALID_ACTION,
CompletionStatus.COMPLETED_NO);
_inUse = true;
TransactionFactoryImple _localFactory = OTSImpleManager.factory();
try
{
ControlImple cont = _localFactory.recreateLocal(ctx);
CurrentImple current = OTSImpleManager.current();
/*
* If this thread is associated with any transactions, then they
* will be lost in favour of this new hierarchy, unless we have
* remembered them explicitly.
*/
if (_remember)
{
try
{
_oldControl = current.suspendWrapper();
}
catch (Exception e)
{
throw new InterpositionFailed();
}
}
current.resumeImple(cont);
// current.resume(cont.getControl());
cont = null;
}
catch (InterpositionFailed ex)
{
throw ex;
}
catch (Exception e)
{
if (jtsLogger.loggerI18N.isWarnEnabled())
{
jtsLogger.loggerI18N.warn("com.arjuna.ats.jts.eicaughtexception", new Object[]
{ "ExplicitInterposition.registerTransaction(PropagationContext)", e });
}
throw new InterpositionFailed();
}
}