smState.getLogger().debug(() -> smState+"Transition: "+getName()+" -> "+nextState+", event="+evt);
try {
this.fireExitActions(smState);
transition.fireTransitionActions(smState);
endState.fireEntryActions(smState);
<BUG>smState.setCurrentStateName(nextState);
} catch(RuntimeException e) {</BUG>
smState.getLogger().warn(smState+"Transition FAILED: "+getName()+" -> "+nextState+", event="+evt);
throw e;
}

smState.getLogger().debug(() -> smState+"Transition: "+getName()+" -> "+nextState+", event="+evt);
try {
this.fireExitActions(smState);
transition.fireTransitionActions(smState);
endState.fireEntryActions(smState);
smState.setCurrentState(nextState);
} catch(RuntimeException e) {
smState.getLogger().warn(smState+"Transition FAILED: "+getName()+" -> "+nextState+", event="+evt);
throw e;
