[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