commit | c73dc91c9b37cfed8486d199c8ea53c6e53c1e6e | [log] [tgz] |
---|---|---|
author | Jan Belle <jan.belle@protos.de> | Sat Nov 28 12:05:54 2020 +0100 |
committer | Jan Belle <jan.belle@protos.de> | Sat Nov 28 12:05:54 2020 +0100 |
tree | e4c175c4f71d6a41c0f109a7f419357986a2544c | |
parent | 1bbc3434b313ccd62994586bd4efaa4560fe5e7d [diff] |
[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)