Problem with a decision node in a fork,join construct.
janvandeklok Dec 15, 2008 4:07 AMHello,
I'm using jbpm 3.3.0. and we noticed a problem with the following process construction:
a fork that splits into 3 decision nodes, these decision nodes transition to either a task node or directly toi the join.
Transitions from the decision to the task node are OK, transitions from the decision node directly to the join will throw a StaleObject Exception when trying to update a token for the fork.
We use Oracle 10 as the database.
Is it a bug or what ??
any help is appreciated!
Jan van de Klok
Below is the processdefinition used:
<process-definition xmlns="" name="preConditionCheckUL"> <start-state name="start-state1"> <transition to="fork1"></transition> </start-state> <task-node name="Controleer student gegevens"> <description> De verzamelde gegevens van student worden gecontroleerd </description> <task name="Invoer resultaat controle student gegevens"> <description> Taak voor controle juistheid gegevens en invoer resultaat </description> <assignment pooled-actors="#{actor.groupActorIds}"></assignment> </task> <transition to="end-state1"></transition> </task-node> <fork name="fork1"> <transition to="paspoort per post" name="to reg Pasport"></transition> <transition to="diploma per post" name="to Registratie ontvangst diploma"></transition> <transition to="inschrijfgeld vereist" name="to Registratie ontvangst inschrijfgeld"></transition> </fork> <task-node name="Registratie ontvangst paspoort"> <description> Registratie ontvangst paspoort #{studentStatus.actorId} </description> <task name="Registreren ontvangst paspoort"> <description> Registreren dat kopie paspoort is ontvangen per post #{studentStatus.actorId} </description> <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment> </task> <transition to="join1"></transition> </task-node> <task-node name="Registratie ontvangst diploma"> <description> Registratie ontvangst diploma </description> <task name="Registreren ontvangst diploma"> <description> Registreren dat kopie diploma is ontvangen per post voor #{studentStatus.actorId} </description> <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment> </task> <transition to="join1" name="from reg diploma"></transition> </task-node> <task-node name="Registratie ontvangst inschrijfgeld"> <description> Registratie ontvangst inschrijfgeld voor #{studentStatus.actorId} </description> <task name="Registreren ontvangst inschrijfgeld"> <description> Registreren dat inschrijfgeld is betaald voor #{studentStatus.actorId} </description> <assignment pooled-actors="#{studentStatus.pooledActors}"></assignment> </task> <transition to="join1" name="from inschrijfgeld"></transition> </task-node> <join name="join1"> <transition to="Controleer student gegevens"></transition> </join> <decision name="paspoort per post"> <handler class="nl.chronotech.ibis.task.PasportByPostDecision"/> <transition to="Registratie ontvangst paspoort" name="byPost"></transition> <transition to="join1" name="upload"></transition> </decision> <decision name="diploma per post"> <handler class="nl.chronotech.ibis.task.DiplomaByPostDecision"/> <transition to="Registratie ontvangst diploma" name="byPost"></transition> <transition to="join1" name="upload"></transition> </decision> <decision name="inschrijfgeld vereist" expression="#{chosenInstitution eq 'Universiteit Leiden'}"> <transition to="Registratie ontvangst inschrijfgeld" name="true"></transition> <transition to="join1" name="false"></transition> </decision> <end-state name="end-state1"> </end-state> </process-definition>