The 3.2.3 documentation says: "When the root execution path is forked into multiple
concurrent execution paths, the root is the parent and the newly created execution paths
are all children of the root."
So if I have this flow:
| S
| |
| F
| / \
| s1 s2
| \ /
| J
| |
| E
|
The when the signal comes on the start node, it moves to the fork (F). It should then fork
two childeren and then move forward to the join (J) and wait for the two childeren to
reach the J as well.
However, if I write out the active node from the parent's token I see this:
1. StartState(start)
2. Fork(fork1)
3. State(state1)
4. Join(join1)
5. EndState
As soon as the token enters 'fork1', it does get 1 child. The getChilderen returns
another token which is in state1 immediately. Then the parent token can be moved forward
through state1 and the join, all the way to the end state.
The documentation states: "This way, implementation of a join can become
straightforward: the implementation of the join just has to verify if all
sibling-execution-paths are already positioned in the join node. If that is the case, the
parent execution path can resume execution leaving the join node."
However I can move the parent token all the way to the end node, without ever signalling
its childeren.
1. I do not understand where the two childeren are when the fork is done.
2. I do not understand why the parent remains in the fork instead of jumping to the join.
3. I do not understand how I can move the parent token past the join.
Something it not matching up.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4189127#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...