[jbpm-commits] JBoss JBPM SVN: r4368 - in jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test: resources/org/jbpm/jbpm2094 and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Mar 31 18:24:03 EDT 2009


Author: alex.guizar at jboss.com
Date: 2009-03-31 18:24:03 -0400 (Tue, 31 Mar 2009)
New Revision: 4368

Modified:
   jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/EsbActionHandler.java
   jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java
   jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
Log:
[JBPM-2094] reproduce deadlock in oracle

Modified: jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/EsbActionHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/EsbActionHandler.java	2009-03-31 14:52:44 UTC (rev 4367)
+++ jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/EsbActionHandler.java	2009-03-31 22:24:03 UTC (rev 4368)
@@ -21,15 +21,14 @@
  */
 package org.jbpm.jbpm2094;
 
-import java.util.Date;
-import java.util.List;
+import java.util.Random;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.dom4j.Element;
 import org.jbpm.graph.def.ActionHandler;
 import org.jbpm.graph.exe.ExecutionContext;
-import org.jbpm.job.ExecuteActionJob;
-import org.jbpm.job.executor.JobExecutorThread;
+import org.jbpm.util.CollectionUtil;
 
 /**
  * @author Alejandro Guizar
@@ -38,23 +37,28 @@
 
   private String esbCategoryName;
   private String esbServiceName;
-  private List<String> bpmToEsbVars;
-  private List<String> esbToBpmVars;
+  private Element bpmToEsbVars;
+  private Element esbToBpmVars;
 
   private static final long serialVersionUID = 1L;
   private static final Log log = LogFactory.getLog(EsbActionHandler.class);
 
   public void execute(ExecutionContext executionContext) throws Exception {
-    if (Thread.currentThread() instanceof JobExecutorThread) {
-      log.debug("invoking " + esbCategoryName + "::" + esbServiceName);
-      executionContext.leaveNode();
+    log.debug("simulating invocation of " + esbCategoryName + "::" + esbServiceName);
+    for (Element bpmToEsbVar : CollectionUtil.checkList(bpmToEsbVars.elements(), Element.class)) {
+      String var = bpmToEsbVar.attributeValue("bpm");
+      Object value = executionContext.getVariable(var);
+      log.debug("read " + value + " from variable " + var);
     }
-    else {
-      ExecuteActionJob job = new ExecuteActionJob(executionContext.getToken());
-      job.setAction(executionContext.getAction());
-      job.setDueDate(new Date());
-      executionContext.getJbpmContext().getServices().getMessageService().send(job);
+    Random random = new Random();
+    for (Element esbToBpmVar : CollectionUtil.checkList(esbToBpmVars.elements(), Element.class)) {
+      String var = esbToBpmVar.attributeValue("bpm");
+      byte[] value = new byte[random.nextInt(2048)];
+      random.nextBytes(value);
+      executionContext.setVariable(var, value);
+      log.debug("wrote " + value.length + " bytes to variable " + var);
     }
+    executionContext.leaveNode();
   }
 
 }

Modified: jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java	2009-03-31 14:52:44 UTC (rev 4367)
+++ jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/java/org/jbpm/jbpm2094/JBPM2094Test.java	2009-03-31 22:24:03 UTC (rev 4368)
@@ -34,7 +34,7 @@
 public class JBPM2094Test extends AbstractDbTestCase {
 
   private static final int TIMEOUT = 60 * 1000;
-  private static final int INSTANCE_COUNT = 10;
+  private static final int INSTANCE_COUNT = 5;
 
   @Override
   protected void setUp() throws Exception {
@@ -61,6 +61,7 @@
       long[] processInstanceIds = new long[INSTANCE_COUNT];
       for (int i = 0; i < INSTANCE_COUNT; i++) {
         ProcessInstance processInstance = new ProcessInstance(processDefinition);
+        processInstance.getContextInstance().setVariable("theBody", "conkersbadfurday".getBytes());
         processInstance.signal();
         jbpmContext.save(processInstance);
         processInstanceIds[i] = processInstance.getId();

Modified: jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
===================================================================
--- jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml	2009-03-31 14:52:44 UTC (rev 4367)
+++ jbpm3/branches/jbpm-3.2.5.SP/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml	2009-03-31 22:24:03 UTC (rev 4368)
@@ -6,7 +6,7 @@
     <transition name="" to="Receive Order"/>
   </start-state>
 
-  <node name="Receive Order">
+  <node async="true" name="Receive Order">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service1</esbCategoryName>
       <esbServiceName>Service1</esbServiceName>
@@ -20,7 +20,7 @@
     <transition to="Validate Order"/>
   </node>
 
-  <node name="Validate Order">
+  <node async="true" name="Validate Order">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service2</esbCategoryName>
       <esbServiceName>Service2</esbServiceName>
@@ -40,7 +40,7 @@
     <transition name="to Atlanta WHSE" to="Atlanta WHSE"/>
   </fork>
 
-  <node name="Los Angeles WHSE">
+  <node async="true" name="Los Angeles WHSE">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service5</esbCategoryName>
       <esbServiceName>Service5</esbServiceName>
@@ -54,7 +54,7 @@
     <transition name="" to="join1"/>
   </node>
 
-  <node name="Dallas WHSE">
+  <node async="true" name="Dallas WHSE">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service6</esbCategoryName>
       <esbServiceName>Service6</esbServiceName>
@@ -68,7 +68,7 @@
     <transition name="" to="join1"/>
   </node>
 
-  <node name="Atlanta WHSE">
+  <node async="true" name="Atlanta WHSE">
 
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service7</esbCategoryName>
@@ -87,7 +87,7 @@
     <transition to="Shipment Notice"/>
   </join>
 
-  <node name="Shipment Notice">
+  <node async="true" name="Shipment Notice">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_ResultsService
       </esbCategoryName>
@@ -106,7 +106,7 @@
 
   <end-state name="end1"/>
 
-  <node name="Credit Check">
+  <node async="true" name="Credit Check">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service3</esbCategoryName>
       <esbServiceName>Service3</esbServiceName>
@@ -120,7 +120,7 @@
     <transition to="Inventory Check"/>
   </node>
 
-  <node name="Inventory Check">
+  <node async="true" name="Inventory Check">
     <action name="esbAction" class="org.jbpm.jbpm2094.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service4</esbCategoryName>
       <esbServiceName>Service4</esbServiceName>




More information about the jbpm-commits mailing list