protected void faultedOperation()

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");
		}
	}