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>