public void exitOperation()

in src/org/apache/kandula/coordinator/ba/BACoordinator.java [364:399]


	public void exitOperation(BAActivityContext baContext, String enlistmentID)
			throws AbstractKandulaException {
		BAParticipantInformation cancelingParticipant = baContext.getParticipant(enlistmentID);
		switch (cancelingParticipant.getStatus()) {
		case BACoordinatorStatus.STATUS_COMPLETED:
		case BACoordinatorStatus.STATUS_CLOSING:
		case BACoordinatorStatus.STATUS_COMPENSATING:
		case BACoordinatorStatus.STATUS_FAULTING_COMPENSATING:
		case BACoordinatorStatus.STATUS_FAULTING_ACTIVE:
		case BACoordinatorStatus.STATUS_FAULTING_COMPLETING:
			log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
					+ " : exitOperation : Coordinator is in" + baContext.getStatus()
					+ " (invalid) state");
			throw new InvalidStateException("Coordinator is in" + baContext.getStatus() + "state");
		case BACoordinatorStatus.STATUS_EXITING:
			break;
		case BACoordinatorStatus.STATUS_ENDED:
			//resend exited
			break;
		case BACoordinatorStatus.STATUS_ACTIVE:
		case BACoordinatorStatus.STATUS_CANCELLING_ACTIVE:
		case BACoordinatorStatus.STATUS_CANCELLING_COMPLETING:
		case BACoordinatorStatus.STATUS_COMPLETING:
		case BACoordinatorStatus.STATUS_CANCELLING:
			cancelingParticipant.setStatus(BACoordinatorStatus.STATUS_EXITING);
			exited(baContext,cancelingParticipant);
			baContext.removeParticipant(enlistmentID);
			
		break;
		default:
			log.fatal("WS_BA : " + baContext.getCoordinationContext().getActivityID()
					+ " : exitOperation : Coordinator is in" + baContext.getStatus()
					+ " (invalid) state, Defaulting");
			throw new InvalidStateException("Coordinator is in" + baContext.getStatus() + "state");
		}
	}