in src/org/apache/kandula/coordinator/ba/BACoordinator.java [79:135]
public void completeOperation(BAActivityContext baContext) throws AbstractKandulaException {
baContext.lock();
switch (baContext.getStatus()) {
case BACoordinatorStatus.STATUS_ACTIVE:
case BACoordinatorStatus.STATUS_COMPLETING:
baContext.unlock();
baContext.setStatus(BACoordinatorStatus.STATUS_COMPLETING);
Hashtable coordinatorCompletionParticipants = baContext
.getCoordinatorCompletionParticipants();
Iterator participantIterator = coordinatorCompletionParticipants.values().iterator();
baContext.incrementCompletingParticipantCount(coordinatorCompletionParticipants.size());
BACoordinatorCompletionParticipantServiceStub participantServiceStub;
try {
participantServiceStub = new BACoordinatorCompletionParticipantServiceStub(
KandulaConfiguration.getInstance()
.getCoordinatorAxis2ConfigurationContext(), null);
} catch (Exception e1) {
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : completeOperation : " + e1);
throw new KandulaGeneralException(e1);
}
while (participantIterator.hasNext()) {
Object object = (participantIterator.next());
BAParticipantInformation participant = (BAParticipantInformation) object;
try {
participantServiceStub._getServiceClient().getOptions().setTo(
participant.getEpr());
Complete completeParam = new Complete();
completeParam.setComplete(new NotificationType());
participant.setStatus(BACoordinatorStatus.STATUS_COMPLETING);
participantServiceStub.CompleteOperation(completeParam);
} catch (Exception e) {
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : completeOperation :" + participant.getEnlistmentId() + " : " + e);
throw new KandulaGeneralException(e);
}
}
break;
case BACoordinatorStatus.STATUS_CANCELLING:
case BACoordinatorStatus.STATUS_COMPLETED:
case BACoordinatorStatus.STATUS_CLOSING:
case BACoordinatorStatus.STATUS_COMPENSATING:
case BACoordinatorStatus.STATUS_FAULTING:
case BACoordinatorStatus.STATUS_EXITING:
case BACoordinatorStatus.STATUS_ENDED:
baContext.unlock();
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : completeOperation : Coordinator is in" + baContext.getStatus()
+ " (invalid) state");
throw new InvalidStateException("Coordinator is in" + baContext.getStatus() + "state");
default:
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : completeOperation : Coordinator is in" + baContext.getStatus()
+ " (invalid) state, Defaulting");
throw new InvalidStateException("Coordinator is in" + baContext.getStatus() + "state");
}
}