executionContext.getToken().setNode(null);
Token token = executionContext.getToken();
// start the transition log
TransitionLog transitionLog = new TransitionLog(this, executionContext.getTransitionSource());
token.startCompositeLog(transitionLog);
try {
// fire leave events for superstates (if any)
fireSuperStateLeaveEvents(executionContext);
// fire the transition event (if any)
fireEvent(Event.EVENTTYPE_TRANSITION, executionContext);
// fire enter events for superstates (if any)
Node destination = fireSuperStateEnterEvents(executionContext);
// update the ultimate destinationNode of this transition
transitionLog.setDestinationNode(destination);
} finally {
// end the transition log
token.endCompositeLog();
}