When my timer expires and I issue a transition, I sometime get a StateUndefinedException. Why?
Because your code isn’t thread-safe. One thread is already in the middle when it is pre-empted by the timer thread. The timer thread then issues another transition but since you are already in transition, the StateUndefinedException. You need to protect your transitions by either using the -sync option if you are using Java, C# or VB.net or add the necessary code yourself.