// fail here because the participant doesn't want to retry the compensate
fail(BusinessActivityConstants.WSBA_ELEMENT_FAIL_QNAME) ;
}
catch (final Throwable th)
{
final State current ;
synchronized (this)
{
current = state ;
if (current == State.STATE_COMPENSATING)
{
changeState(State.STATE_COMPLETED) ;
}
}
if (current == State.STATE_COMPENSATING)
{
initiateTimer() ;
}
if (WSTLogger.arjLoggerI18N.isDebugEnabled())
{
WSTLogger.arjLoggerI18N.debug("com.arjuna.wst11.messaging.engines.CoordinatorCompletionParticipantEngine.executeCompensate_2", new Object[] { id }, th) ;
}
return ;
}
final State current ;
boolean failRequired = false;
synchronized (this)
{
current = state ;
// need to do this while synchronized so no fail calls can get in on between