[jbpm-commits] JBoss JBPM SVN: r5050 - jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jun 17 05:57:20 EDT 2009


Author: jbarrez
Date: 2009-06-17 05:57:20 -0400 (Wed, 17 Jun 2009)
New Revision: 5050

Modified:
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
Log:
Added tests for JBPM-1214 : self-transition/loop back to State activity

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java	2009-06-17 08:57:15 UTC (rev 5049)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/StateTest.java	2009-06-17 09:57:20 UTC (rev 5050)
@@ -149,4 +149,59 @@
     ProcessInstance processInstance = executionService.signalExecutionById("p.one");
     assertTrue(processInstance.isActive("a"));
   }
+  
+  /**
+   * Test for JBPM-1214
+   * 
+   * When a self transition comes back into the same state in the same transaction,
+   * potentially there could be optimistick locking failures.
+   */
+  public void testSelfTransition() {
+    deployJpdlXmlString(
+            "<process name='selfTransition'>" +
+            "  <start>" +
+            "    <transition to='wait' />" +
+            "  </start>" +
+            "  <state name='wait' >" +
+            "    <transition to='wait' />" +
+            "  </state>" +
+            "</process>"
+          );
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("selfTransition");
+    assertTrue(processInstance.isActive("wait"));
+    executionService.signalExecutionById(processInstance.getId());
+    assertTrue(processInstance.isActive("wait"));
+  }
+  
+  /**
+   * Test for JBPM-1214
+   * 
+   * When a wait state is signalled and the execution comes back to the
+   * wait state, there can potentially be optimistic locking exceptions.
+   */
+  public void testLoopBackToSignalledState() {
+    deployJpdlXmlString(
+            "<process name='loopBackToState'>" +
+            "  <start>" +
+            "    <transition to='wait' />" +
+            "  </start>" +
+            "  <state name='wait' >" +
+            "    <transition to='go further' />" +
+            "  </state>" +
+            "  <custom name='go further' class='org.jbpm.test.activities.PassThroughActivity' >" +
+            "    <transition to='go even further' />" +
+            "  </custom>" +
+            "  <custom name='go even further' class='org.jbpm.test.activities.PassThroughActivity' >" +
+            "    <transition to='wait' />" +
+            "  </custom>" +
+            "  <end name='end' />" +
+            "</process>"
+          );
+    
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("loopBackToState");
+    assertTrue(processInstance.isActive("wait"));
+    executionService.signalExecutionById(processInstance.getId());
+    assertTrue(processInstance.isActive("wait"));
+  }
+  
 }




More information about the jbpm-commits mailing list