in src/org/apache/kandula/coordinator/at/ATCoordinator.java [47:83]
public EndpointReference register(AbstractContext context, String protocol,
EndpointReference participantEPR,String enlistmentID) throws AbstractKandulaException {
ATActivityContext atContext = (ATActivityContext) context;
atContext.lock();
switch (atContext.getStatus()) {
case CoordinatorStatus.STATUS_PREPARING_DURABLE:
atContext.unlock();
try {
this.abortActivity(atContext);
} catch (Exception e) {
throw new InvalidStateException(e);
}
throw new InvalidStateException(
"Coordinator is in preparing state - Durable ");
case CoordinatorStatus.STATUS_PREPARED_SUCCESS:
atContext.unlock();
throw new InvalidStateException(
"Coordinator is in prepared success state");
case CoordinatorStatus.STATUS_COMMITTING:
atContext.unlock();
throw new InvalidStateException(
"Coordinator is in committing state");
case CoordinatorStatus.STATUS_ABORTING:
atContext.unlock();
throw new InvalidStateException("Coordinator is in Aborting state");
case CoordinatorStatus.STATUS_ACTIVE:
case CoordinatorStatus.STATUS_PREPARING_VOLATILE:
EndpointReference epr = atContext.addParticipant(participantEPR,
protocol,enlistmentID);
atContext.unlock();
return epr;
case CoordinatorStatus.STATUS_NONE:
default:
atContext.unlock();
throw new InvalidStateException();
}
}