[jbpm-commits] JBoss JBPM SVN: r6335 - in jbpm4/trunk/modules: test-db/src/test/java/org/jbpm/test/activity/task and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed May 12 20:59:28 EDT 2010
Author: rebody
Date: 2010-05-12 20:59:27 -0400 (Wed, 12 May 2010)
New Revision: 6335
Modified:
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/task/TaskSwimlaneTest.java
Log:
JBPM-2860 Thank you Michael for patch and testcase.
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2010-05-13 00:45:29 UTC (rev 6334)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ExecutionImpl.java 2010-05-13 00:59:27 UTC (rev 6335)
@@ -837,6 +837,12 @@
public SwimlaneImpl getInitializedSwimlane(SwimlaneDefinitionImpl swimlaneDefinition) {
String swimlaneName = swimlaneDefinition.getName();
SwimlaneImpl swimlane = swimlanes.get(swimlaneName);
+
+ // lookup in parent execution
+ if ((swimlane == null) && (parent != null)) {
+ swimlane = parent.getInitializedSwimlane(swimlaneDefinition);
+ }
+
if (swimlane==null) {
swimlane = createSwimlane(swimlaneName);
initializeAssignments(swimlaneDefinition, swimlane);
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/task/TaskSwimlaneTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/task/TaskSwimlaneTest.java 2010-05-13 00:45:29 UTC (rev 6334)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/task/TaskSwimlaneTest.java 2010-05-13 00:59:27 UTC (rev 6335)
@@ -23,6 +23,7 @@
import java.util.List;
+import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.jbpm.test.JbpmTestCase;
@@ -94,4 +95,36 @@
assertEquals(0, executionService.createProcessInstanceQuery().count());
assertEquals(0, taskService.createTaskQuery().count());
}
+
+ public void testTaskParse() {
+ deployJpdlXmlString(
+ "<process name='Swimlane' xmlns='http://jbpm.org/4.3/jpdl'>"
+ + "<swimlane name='user'/>"
+ + "<start g='168,19,48,48' name='start1'>"
+ + " <transition g='-61,-18' name='to FirstTask' to='FirstTask'/>"
+ + "</start>"
+ + "<task g='155,86,92,52' name='FirstTask' swimlane='user'>"
+ + " <transition g='-64,-18' name='to timerTask' to='timerTask'/>"
+ + "</task>"
+ + "<task g='157,228,92,52' name='timerTask' swimlane='user'>"
+ + " <transition g='-42,-18' name='to end1' to='end1'>"
+ + " <timer duedate='30 seconds' />"
+ + " </transition>"
+ + "</task>"
+ + "<end g='176,330,48,48' name='end1'/>"
+ + "</process>");
+
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("Swimlane");
+ Task firstTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).uniqueResult();
+
+ taskService.assignTask(firstTask.getId(), "alex");
+ firstTask = taskService.getTask(firstTask.getId());
+ assertEquals("alex", firstTask.getAssignee());
+ assertEquals("FirstTask", firstTask.getName());
+ taskService.completeTask(firstTask.getId());
+
+ Task timerTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).uniqueResult();
+ assertEquals("timerTask", timerTask.getName());
+ assertEquals("alex", timerTask.getAssignee());
+ }
}
More information about the jbpm-commits
mailing list