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);
		}
	}
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
Event firing logic independent of transaction management .