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> 
     
    