Fork and join , bug ?
created by Hamel Camille in jBPM - View the full discussion
Hi , I'm a newbie in the jbpm world, I'm developing a sample process to evaluate Jbpm (4.4 ) but i encounter a lock in my process : i enter a fork ( parallel gateway ) , in this fork , one of the branches has an decision ( XOR Gate ) with 2 branches , and then , every branch goes back to a join. The problem is that the XOR branches generate a lock on that join , what would be the appropriate solution ? Here's my jpdl : <?xml version="1.0" encoding="UTF-8"?>
<process name="arriveDepart" xmlns="http://jbpm.org/4.4/jpdl"> <swimlane candidate-users="alex,mike,${login}" name="Manager"/> <swimlane candidate-users="mary" name="Logistique"/> <swimlane candidate-users="mary" name="SI-DRI"/> <swimlane candidate-users="mary" name="DSEM"/> <swimlane candidate-users="mary" name="I-net"/>
<start form="org/laposte/jbpm/start.html" g="322,16,48,52" name="start1"> <transition name="to exclusive1" to="exclusive1" g="-68,-18"/> </start> <task form="org/laposte/jbpm/SaisieidRH.html" g="228,184,92,52" name="Saisie idRH" swimlane="Logistique"> <transition to="join5"/> </task> <fork g="322,348,48,52" name="fork1"> <transition to="Saisie badge"/> <transition to="Installation poste"/> <transition to="Activation i-net"/> </fork> <task form="org/laposte/jbpm/Saisiebadge.html" g="176,432,92,52" name="Saisie badge" swimlane="Logistique"> <transition to="join1"/> </task> <task form="org/laposte/jbpm/Installationposte.html" g="300,432,92,52" name="Installation poste" swimlane="DSEM"> <transition to="join1"/> </task> <task form="org/laposte/jbpm/activationI-net.html" g="424,432,92,52" name="Activation i-net" swimlane="I-net"> <transition to="Création AD"/> </task> <task form="org/laposte/jbpm/creationAD.html" g="424,516,92,52" name="Création AD" swimlane="DSEM"> <transition to="exclusive3"/> </task> <decision g="424,600,92,52" name="exclusive3"> <transition g="-120,-18" name="to Decision prolongation" to="join1"/> <transition to="Liaison PSNEXT"> <condition expr="#{psnext=="true"}"/> </transition> </decision> <task form="org/laposte/jbpm/Liaisonpsnext.html" g="480,699,92,52" name="Liaison PSNEXT" swimlane="SI-DRI"> <transition g="-120,-18" name="to Decision prolongation" to="join1"/> </task> <join g="279,848,92,52" name="join1"> <transition to="Decision prolongation"/> </join> <task form="org/laposte/jbpm/decisionprolongation.html" g="279,932,92,52" name="Decision prolongation" swimlane="Manager"> <transition to="exclusive2"/> </task> <decision g="140,1314,92,52" name="exclusive5"> <transition to="Document PSNEXT"> <condition expr="#{psnext=="true"}"/> </transition> <transition g="-41,-18" name="to join4" to="join4"/> </decision> <fork g="162,1096,92,52" name="fork2"> <transition to="exclusive5"/> <transition to="Prolongation badge"/> </fork> <task form="org/laposte/jbpm/documentpsnext.html" g="27,1237,92,52" name="Document PSNEXT" swimlane="Manager"> <transition to="Prolongation PSNEXT"/> </task> <task form="org/laposte/jbpm/prolongationpsnext.html" g="-2,1157,92,52" name="Prolongation PSNEXT" swimlane="SI-DRI"> <transition g="-41,-18" name="to join4" to="join4"/> </task> <task form="org/laposte/jbpm/prolongationbadge.html" g="113,1040,92,52" name="Prolongation badge" swimlane="Logistique"> <transition to="join4"/> </task> <join g="410,1096,92,52" name="join2"> <transition to="Suppression AD"/> <transition to="Editions documents"/> <transition to="Reprise badge"/> <transition to="Enlevement poste"/> </join> <task g="435,1185,92,52" name="Suppression AD" swimlane="DSEM"> <transition to="join3"/> </task> <task g="283,1203,92,52" name="Editions documents" swimlane="Manager"> <transition to="Suppression services i-net"/> <transition to="exclusive7"/> </task> <task g="534,1180,92,52" name="Reprise badge" swimlane="Logistique"> <transition to="join3"/> </task> <task g="358,1403,92,52" name="Suppression PSNEXT" swimlane="SI-DRI"> <transition to="join8"/> </task> <decision g="308,1285,92,52" name="exclusive7"> <transition to="Suppression PSNEXT"> <condition expr="#{psnext=="true"}"/> </transition> <transition to="join8"/> </decision> <task g="381,1274,92,52" name="Suppression services i-net" swimlane="I-net"> <transition to="join3"/> </task> <task g="658,1180,92,52" name="Enlevement poste" swimlane="DSEM"> <transition to="join3"/> </task> <join g="505,1512,48,52" name="join3"> <transition to="end1"/> </join> <end g="505,1596,48,52" name="end1"/> <join g="60,967,92,52" name="join4"> <transition g="-120,-18" name="to Decision prolongation" to="Decision prolongation"/> </join> <decision g="301,1016,48,48" name="exclusive2"> <transition to="fork2"> <condition expr="#{prolongation=="true"}"/> </transition> <transition to="join2"/> </decision> <join g="322,268,48,48" name="join5"> <transition to="fork1"/> </join> <join g="287,1483,48,48" name="join8"> <transition to="join3"/> </join> <decision name="exclusive1" g="333,121,48,48"> <transition to="Saisie idRH"> <condition expr="#{idrh==""}"/> </transition> <transition to="join5"> </transition> </decision> </process> ( the lock is on join1 )
|