container/resource/src/main/java/org/mobicents/slee/resource/SleeEndpointImpl.java
void _fireEvent(ActivityHandle realHandle, ActivityHandle refHandle,
			FireableEventType eventType, Object event, Address address,
			ReceivableService receivableService, int eventFlags, final SleeTransaction barrierTx)
			throws ActivityIsEndingException, SLEEException {
		final ActivityContextHandle ach = new ResourceAdaptorActivityContextHandleImpl(
				raEntity, refHandle);
		// get ac
		final ActivityContext ac = acFactory.getActivityContext(ach);
		if (ac == null) {
			throw new UnrecognizedActivityHandleException("Unable to fire "
					+ eventType.getEventType() + " on activity handle "
					+ realHandle
					+ " , the handle is not mapped to an activity context");
		} else {
			// suspend activity if needed
			if (barrierTx != null) {
				final ActivityEventQueueManager aeqm = ac.getLocalActivityContext().getEventQueueManager();
				aeqm.createBarrier(barrierTx);
				TransactionalAction action = new TransactionalAction() {
					public void execute() {
						aeqm.removeBarrier(barrierTx);					
					}
				};
				final TransactionContext tc = barrierTx.getTransactionContext();
				tc.getAfterCommitActions().add(action);
				tc.getAfterRollbackActions().add(action);
			}
			final EventProcessingCallbacks callbacks = new EventProcessingCallbacks(
					realHandle, eventType, event, address, receivableService,
					eventFlags, raEntity);
			final EventProcessingSucceedCallback succeedCallback = EventFlags
					.hasRequestProcessingSuccessfulCallback(eventFlags) ? callbacks
					: null;
			final EventProcessingFailedCallback failedCallback = EventFlags
					.hasRequestProcessingFailedCallback(eventFlags) ? callbacks
					: null;
			final EventUnreferencedCallback unreferencedCallback = EventFlags
					.hasRequestEventReferenceReleasedCallback(eventFlags) ? callbacks
					: null;
			ac.fireEvent(eventType.getEventType(), event, address,
					receivableService == null ? null : receivableService
							.getService(), succeedCallback, failedCallback,
					unreferencedCallback);
		}
	}
void _fireEvent(ActivityHandle realHandle, ActivityHandle refHandle,
			FireableEventType eventType, Object event, Address address,
			ReceivableService receivableService, int eventFlags, final SleeTransaction barrierTx)
			throws ActivityIsEndingException, SLEEException {
		final ActivityContextHandle ach = new ResourceAdaptorActivityContextHandleImpl(
				raEntity, refHandle);
		// get ac
		final ActivityContext ac = acFactory.getActivityContext(ach);
		if (ac == null) {
			throw new UnrecognizedActivityHandleException("Unable to fire "
					+ eventType.getEventType() + " on activity handle "
					+ realHandle
					+ " , the handle is not mapped to an activity context");
		} else {
			// suspend activity if needed
			if (barrierTx != null) {
				final ActivityEventQueueManager aeqm = ac.getLocalActivityContext().getEventQueueManager();
				aeqm.createBarrier(barrierTx);
				TransactionalAction action = new TransactionalAction() {
					public void execute() {
						aeqm.removeBarrier(barrierTx);					
					}
				};
				final TransactionContext tc = barrierTx.getTransactionContext();
				tc.getAfterCommitActions().add(action);
				tc.getAfterRollbackActions().add(action);
			}
			final EventProcessingCallbacks callbacks = new EventProcessingCallbacks(
					realHandle, eventType, event, address, receivableService,
					eventFlags, raEntity);
			final EventProcessingSucceedCallback succeedCallback = EventFlags
					.hasRequestProcessingSuccessfulCallback(eventFlags) ? callbacks
					: null;
			final EventProcessingFailedCallback failedCallback = EventFlags
					.hasRequestProcessingFailedCallback(eventFlags) ? callbacks
					: null;
			final EventUnreferencedCallback unreferencedCallback = EventFlags
					.hasRequestEventReferenceReleasedCallback(eventFlags) ? callbacks
					: null;
			ac.fireEvent(eventType.getEventType(), event, address,
					receivableService == null ? null : receivableService
							.getService(), succeedCallback, failedCallback,
					unreferencedCallback);
		}
	}
Event firing logic independent of transaction management.

@param realHandle
@param refHandle
@param eventType
@param event
@param address
@param receivableService
@param eventFlags
@param barrierTx
@throws ActivityIsEndingException
@throws SLEEException