in src/org/apache/kandula/coordinator/ba/BACoordinator.java [517:560]
protected void faultedOperation(BAActivityContext baContext,BAParticipantInformation baParticipantInformation) throws AbstractKandulaException {
BACoordinatorCompletionParticipantServiceStub participantServiceStub;
switch (baParticipantInformation.getStatus()) {
case BACoordinatorStatus.STATUS_ACTIVE:
case BACoordinatorStatus.STATUS_CANCELLING:
case BACoordinatorStatus.STATUS_COMPLETING:
case BACoordinatorStatus.STATUS_COMPLETED:
case BACoordinatorStatus.STATUS_CLOSING:
case BACoordinatorStatus.STATUS_COMPENSATING:
case BACoordinatorStatus.STATUS_EXITING:
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : faultedOperation : Coordinator is in" + baContext.getStatus()
+ " (invalid) state");
throw new InvalidStateException("Coordinator is in" + baContext.getStatus() + "state");
case BACoordinatorStatus.STATUS_ENDED:
case BACoordinatorStatus.STATUS_FAULTING:
case BACoordinatorStatus.STATUS_FAULTING_ACTIVE:
case BACoordinatorStatus.STATUS_FAULTING_COMPENSATING:
case BACoordinatorStatus.STATUS_FAULTING_COMPLETING:
case BACoordinatorStatus.STATUS_FAULTING_COMPLETED:
try {
participantServiceStub = new BACoordinatorCompletionParticipantServiceStub(
KandulaConfiguration.getInstance()
.getCoordinatorAxis2ConfigurationContext(), null);
participantServiceStub._getServiceClient().getOptions().setTo(
baParticipantInformation.getEpr());
Failed failed = new Failed();
failed.setFailed(new NotificationType());
baParticipantInformation.setStatus(BACoordinatorStatus.STATUS_ENDED);
baContext.removeParticipant(baParticipantInformation.getEnlistmentId());
participantServiceStub.FailedOperation(failed);
} catch (Exception e) {
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : faultedOperation :" + baParticipantInformation + " : " + e);
throw new KandulaGeneralException(e);
}
break;
default:
log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
+ " : faultedOperation : Coordinator is in" + baParticipantInformation.getStatus()
+ " (invalid) state, Defaulting");
throw new InvalidStateException("Coordinator is in" + baParticipantInformation.getStatus() + "state");
}
}