[genmodel.fsm] Fix fsm genmodel builder for cyclic transition chains

Bug 569188

Change-Id: I04db41e9c93721f7f287213aec7afc8c36ef05ae
diff --git a/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ExtendedFsmGenBuilder.xtend b/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ExtendedFsmGenBuilder.xtend
index f0aca95..cc7ba54 100644
--- a/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ExtendedFsmGenBuilder.xtend
+++ b/plugins/org.eclipse.etrice.core.genmodel.fsm/src/org/eclipse/etrice/core/genmodel/fsm/ExtendedFsmGenBuilder.xtend
@@ -116,6 +116,13 @@
 			return
 		}
 		else {
+			// check whether we already visited the target node
+			if(!l.target.outgoing.empty && l.target.outgoing.head.chainHeads.contains(head)) {
+				// the transition chain generator can't handle cyclic transition chains
+				validationError("This transition is part of a cyclic transition chain", l.transition, null);
+				return;
+			}
+			
 			// follow all outgoing links recursively
 			for (next : l.target.outgoing) {
 				next.followChain(head)