I have a small problem here:
Processdefinition contains a situation, where a fork has 3 child-taskNodes and just 2 of
them will join again:
TaskNode A -------> Fork
Fork --------> TaskNode B
Fork --------> TaskNode C1
Fork --------> TaskNode C2
TaskNode B ---------> EndState
TaskNode C1 ---------> Join
TaskNode C2 ---------> Join
Join ---------> TaskNode D
Now, when executing this path after the fork, the following procedures WORK:
B .signal()
C1 .signal()
C2. signal()
or
C1.signal()
B.signal()
C2.signal()
So as long as B has ended before C1 and C2, everything seems to be ok.
But if C1 and C2 end before B, then the only open task is Task B. But Task D, which should
occur after the JOIN, is missing.
I check all taskInstances of one certain processInstance with
TaskMgmtInstance taskMgmt = processInstance.getTaskMgmtInstance();
| Collection<TaskInstance> allTaskInstances = taskMgmt.getTaskInstances();
Searching the forum results in some posts that say:
- a JOIN is always coupled with a FORK in some way (i guess its the nearest fork then)
- a JOIN expects exactly the number of incoming tokens that the fork created
Is this right? But this behaviour wouldn't explain why it works with ended B, but not
otherwise...
Is there any workaround?
Btw @Kukeltje: I searched in the CVS for unit-tests, but could you give me a hint where to
find them? I checked out "jbpm.3".
Thx in advance
alex
thx in advance
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131959#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...