[jbpm-commits] JBoss JBPM SVN: r6165 - in jbpm3/branches/jbpm-3.2-soa/modules/core/src: main/java/org/jbpm/graph/exe and 5 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Feb 5 12:59:03 EST 2010


Author: alex.guizar at jboss.com
Date: 2010-02-05 12:59:02 -0500 (Fri, 05 Feb 2010)
New Revision: 6165

Modified:
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Action.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/graph/exe/Token.hbm.xml
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/EsbActionHandler.java
   jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
Log:
JBPM-2787: cascade lock to parent token,
plus updates made reviewing process instances stuck in fork


Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Action.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Action.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Action.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -89,7 +89,8 @@
         + actionElement.getPath());
     }
 
-    String acceptPropagatedEvents = actionElement.attributeValue("accept-propagated-events");
+    String acceptPropagatedEvents =
+        actionElement.attributeValue("accept-propagated-events");
     if ("false".equalsIgnoreCase(acceptPropagatedEvents)
       || "no".equalsIgnoreCase(acceptPropagatedEvents)
       || "off".equalsIgnoreCase(acceptPropagatedEvents)) {
@@ -113,13 +114,14 @@
   }
 
   public void execute(ExecutionContext executionContext) throws Exception {
-    ClassLoader surroundingClassLoader = Thread.currentThread()
-        .getContextClassLoader();
+    Thread currentThread = Thread.currentThread();
+    ClassLoader contextClassLoader = currentThread.getContextClassLoader();
     try {
       // set context class loader correctly for delegation class
       // (https://jira.jboss.org/jira/browse/JBPM-1448)
-      ClassLoader classLoader = JbpmConfiguration.getProcessClassLoader(executionContext.getProcessDefinition());
-      Thread.currentThread().setContextClassLoader(classLoader);
+      ClassLoader processClassLoader =
+          JbpmConfiguration.getProcessClassLoader(executionContext.getProcessDefinition());
+      currentThread.setContextClassLoader(processClassLoader);
 
       if (referencedAction != null) {
         referencedAction.execute(executionContext);
@@ -128,12 +130,13 @@
         JbpmExpressionEvaluator.evaluate(actionExpression, executionContext);
       }
       else if (actionDelegation != null) {
-        ActionHandler actionHandler = (ActionHandler) actionDelegation.getInstance();
+        ActionHandler actionHandler =
+            (ActionHandler) actionDelegation.getInstance();
         actionHandler.execute(executionContext);
       }
     }
     finally {
-      Thread.currentThread().setContextClassLoader(surroundingClassLoader);
+      currentThread.setContextClassLoader(contextClassLoader);
     }
   }
 

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/GraphElement.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -46,7 +46,6 @@
 import org.jbpm.persistence.db.DbPersistenceService;
 import org.jbpm.signal.EventService;
 import org.jbpm.svc.Service;
-import org.jbpm.svc.Services;
 import org.jbpm.util.ClassUtil;
 
 public abstract class GraphElement implements Identifiable, Serializable {

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/def/Node.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -45,7 +45,6 @@
 import org.jbpm.jpdl.xml.JpdlXmlReader;
 import org.jbpm.jpdl.xml.Parsable;
 import org.jbpm.msg.MessageService;
-import org.jbpm.svc.Services;
 import org.jbpm.util.Clock;
 
 public class Node extends GraphElement implements Parsable {
@@ -176,7 +175,7 @@
    */
   public Transition addLeavingTransition(Transition leavingTransition) {
     if (leavingTransition == null)
-      throw new IllegalArgumentException("can't add a null leaving transition to an node");
+      throw new IllegalArgumentException("leaving transition is null");
 
     if (leavingTransitions == null) leavingTransitions = new ArrayList();
     leavingTransition.from = this;
@@ -192,7 +191,7 @@
    */
   public void removeLeavingTransition(Transition leavingTransition) {
     if (leavingTransition == null)
-      throw new IllegalArgumentException("can't remove a null leavingTransition from an node");
+      throw new IllegalArgumentException("leaving transition is null");
 
     if (leavingTransitions != null && leavingTransitions.remove(leavingTransition)) {
       leavingTransition.from = null;
@@ -307,7 +306,7 @@
    */
   public Transition addArrivingTransition(Transition arrivingTransition) {
     if (arrivingTransition == null)
-      throw new IllegalArgumentException("can't add a null arrivingTransition to a node");
+      throw new IllegalArgumentException("arriving transition is null");
 
     if (arrivingTransitions == null) arrivingTransitions = new HashSet();
     arrivingTransition.to = this;
@@ -322,7 +321,7 @@
    */
   public void removeArrivingTransition(Transition arrivingTransition) {
     if (arrivingTransition == null)
-      throw new IllegalArgumentException("can't remove a null arrivingTransition from a node");
+      throw new IllegalArgumentException("arriving transition is null");
 
     if (arrivingTransitions != null && arrivingTransitions.remove(arrivingTransition)) {
       arrivingTransition.to = null;
@@ -367,7 +366,7 @@
     // execute the node
     if (isAsync) {
       ExecuteNodeJob job = createAsyncContinuationJob(token);
-      MessageService messageService = (MessageService) Services.getCurrentService(Services.SERVICENAME_MESSAGE);
+      MessageService messageService = executionContext.getJbpmContext().getServices().getMessageService();
       messageService.send(job);
       token.lock(job.toString());
     }
@@ -421,7 +420,7 @@
   public void leave(ExecutionContext executionContext, String transitionName) {
     Transition transition = getLeavingTransition(transitionName);
     if (transition == null)
-      throw new JbpmException("'" + transitionName + "' is not a leaving transition of " + this);
+      throw new JbpmException("no such transition: " + transitionName);
 
     leave(executionContext, transition);
   }
@@ -431,7 +430,7 @@
    */
   public void leave(ExecutionContext executionContext, Transition transition) {
     if (transition == null)
-      throw new JbpmException("cannot leave " + this + " without leaving transition");
+      throw new JbpmException("transition is null");
 
     Token token = executionContext.getToken();
     token.setNode(this);
@@ -476,7 +475,7 @@
               this +
               " to '" +
               name +
-              "' - parent superstate has another child node with the same name");
+              "'; superstate has a child node with the same name");
         }
         Map nodes = superState.getNodesMap();
         nodes.remove(oldName);
@@ -488,7 +487,7 @@
               this +
               " to '" +
               name +
-              "' - process definition has another child node with the same name");
+              "'; process definition has a child node with the same name");
         }
         Map nodeMap = processDefinition.getNodesMap();
         nodeMap.remove(oldName);

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/exe/Token.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -186,8 +186,7 @@
 
   void signal(Transition transition, ExecutionContext executionContext) {
     if (transition == null) {
-      throw new JbpmException(
-          "couldn't signal without specifying  a leaving transition : transition is null");
+      throw new JbpmException("transition is null");
     }
     if (executionContext == null) {
       throw new JbpmException("execution context is null");
@@ -243,8 +242,7 @@
       Set availableTransitions) {
     List leavingTransitions = currentNode.getLeavingTransitions();
     if (leavingTransitions != null) {
-      Iterator iter = leavingTransitions.iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = leavingTransitions.iterator(); iter.hasNext();) {
         Transition transition = (Transition) iter.next();
         String conditionExpression = transition.getCondition();
         if (conditionExpression != null) {
@@ -286,22 +284,18 @@
   public void end(boolean verifyParentTermination) {
     // if not already ended
     if (end == null) {
-
       // ended tokens cannot reactivate parents
       isAbleToReactivateParent = false;
 
       // set the end date
-      // the end date is also the flag that indicates that this token has ended.
+      // the end date also indicates that this token has ended
       this.end = Clock.getCurrentTime();
 
       // end all this token's children
       if (children != null) {
-        Iterator iter = children.values().iterator();
-        while (iter.hasNext()) {
+        for (Iterator iter = children.values().iterator(); iter.hasNext();) {
           Token child = (Token) iter.next();
-          if (!child.hasEnded()) {
-            child.end();
-          }
+          if (!child.hasEnded()) child.end();
         }
       }
 
@@ -309,20 +303,16 @@
         subProcessInstance.end();
       }
 
-      // only log child-token ends. process instance logs replace root token
-      // logs.
+      // only log child-token ends
+      // process instance logs replace root token logs
       if (parent != null) {
-        // add a log
         parent.addLog(new TokenEndLog(this));
       }
 
-      // if there are tasks associated to this token, remove signaling
-      // capabilities
-      TaskMgmtInstance taskMgmtInstance = (processInstance != null ? processInstance.getTaskMgmtInstance()
-          : null);
-      if (taskMgmtInstance != null) {
-        taskMgmtInstance.removeSignalling(this);
-      }
+      // if there are tasks associated to this token,
+      // remove signaling capabilities
+      TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+      if (taskMgmtInstance != null) taskMgmtInstance.removeSignalling(this);
 
       if (verifyParentTermination) {
         // if this is the last active token of the parent,
@@ -366,19 +356,14 @@
    * tells if this token has child tokens that have not yet ended.
    */
   public boolean hasActiveChildren() {
-    boolean foundActiveChildToken = false;
-    // try and find at least one child token that is
-    // still active (= not ended)
+    // try and find at least one child token that is still active (not ended)
     if (children != null) {
-      Iterator iter = children.values().iterator();
-      while ((iter.hasNext()) && (!foundActiveChildToken)) {
+      for (Iterator iter = children.values().iterator(); iter.hasNext();) {
         Token child = (Token) iter.next();
-        if (!child.hasEnded()) {
-          foundActiveChildToken = true;
-        }
+        if (!child.hasEnded()) return true;
       }
     }
-    return foundActiveChildToken;
+    return false;
   }
 
   // log convenience methods //////////////////////////////////////////////////
@@ -387,7 +372,8 @@
    * convenience method for adding a process log.
    */
   public void addLog(ProcessLog processLog) {
-    LoggingInstance li = (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+    LoggingInstance li =
+        (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
     if (li != null) {
       processLog.setToken(this);
       li.addLog(processLog);
@@ -399,7 +385,8 @@
    * logs, make sure you put the {@link #endCompositeLog()} in a finally block.
    */
   public void startCompositeLog(CompositeLog compositeLog) {
-    LoggingInstance li = (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+    LoggingInstance li =
+        (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
     if (li != null) {
       compositeLog.setToken(this);
       li.startCompositeLog(compositeLog);
@@ -411,7 +398,8 @@
    * finally block.
    */
   public void endCompositeLog() {
-    LoggingInstance li = (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
+    LoggingInstance li =
+        (LoggingInstance) processInstance.getInstance(LoggingInstance.class);
     if (li != null) {
       li.endCompositeLog();
     }
@@ -432,15 +420,11 @@
   }
 
   public boolean hasChild(String name) {
-    return (children != null ? children.containsKey(name) : false);
+    return children != null ? children.containsKey(name) : false;
   }
 
   public Token getChild(String name) {
-    Token child = null;
-    if (children != null) {
-      child = (Token) children.get(name);
-    }
-    return child;
+    return children != null ? (Token) children.get(name) : null;
   }
 
   public String getFullName() {
@@ -469,8 +453,7 @@
 
   public void collectChildrenRecursively(List tokens) {
     if (children != null) {
-      Iterator iter = children.values().iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = children.values().iterator(); iter.hasNext();) {
         Token child = (Token) iter.next();
         tokens.add(child);
         child.collectChildrenRecursively(tokens);
@@ -516,8 +499,7 @@
   public Map getActiveChildren() {
     Map activeChildren = new HashMap();
     if (children != null) {
-      Iterator iter = children.entrySet().iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = children.entrySet().iterator(); iter.hasNext();) {
         Map.Entry entry = (Map.Entry) iter.next();
         Token child = (Token) entry.getValue();
         if (!child.hasEnded()) {
@@ -532,10 +514,7 @@
   public void checkImplicitTermination() {
     if (isTerminationImplicit && node.hasNoLeavingTransitions()) {
       end();
-
-      if (processInstance.isTerminatedImplicitly()) {
-        processInstance.end();
-      }
+      if (processInstance.isTerminatedImplicitly()) processInstance.end();
     }
   }
 
@@ -543,18 +522,15 @@
     if (end != null) return true;
 
     Map leavingTransitions = node.getLeavingTransitionsMap();
-    if ((leavingTransitions != null) && (leavingTransitions.size() > 0)) {
+    if (leavingTransitions != null && !leavingTransitions.isEmpty()) {
       // ok: found a non-terminated token
       return false;
     }
 
     // loop over all active child tokens
-    Iterator iter = getActiveChildren().values().iterator();
-    while (iter.hasNext()) {
+    for (Iterator iter = getActiveChildren().values().iterator(); iter.hasNext();) {
       Token child = (Token) iter.next();
-      if (!child.isTerminatedImplicitly()) {
-        return false;
-      }
+      if (!child.isTerminatedImplicitly()) return false;
     }
     // if none of the above, this token is terminated implicitly
     return true;
@@ -575,8 +551,7 @@
 
     // propagate to child tokens
     if (children != null) {
-      Iterator iter = children.values().iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = children.values().iterator(); iter.hasNext();) {
         Token child = (Token) iter.next();
         child.suspend();
       }
@@ -585,19 +560,15 @@
 
   void suspendJobs() {
     JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    JobSession jobSession = jbpmContext != null ? jbpmContext.getJobSession()
-        : null;
-    if (jobSession != null) {
-      jobSession.suspendJobs(this);
+    if (jbpmContext != null) {
+      JobSession jobSession = jbpmContext.getJobSession();
+      if (jobSession != null) jobSession.suspendJobs(this);
     }
   }
 
   void suspendTaskInstances() {
-    TaskMgmtInstance taskMgmtInstance = (processInstance != null ? processInstance.getTaskMgmtInstance()
-        : null);
-    if (taskMgmtInstance != null) {
-      taskMgmtInstance.suspend(this);
-    }
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+    if (taskMgmtInstance != null) taskMgmtInstance.suspend(this);
   }
 
   /**
@@ -611,8 +582,7 @@
 
     // propagate to child tokens
     if (children != null) {
-      Iterator iter = children.values().iterator();
-      while (iter.hasNext()) {
+      for (Iterator iter = children.values().iterator(); iter.hasNext();) {
         Token child = (Token) iter.next();
         child.resume();
       }
@@ -621,19 +591,15 @@
 
   void resumeJobs() {
     JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();
-    JobSession jobSession = jbpmContext != null ? jbpmContext.getJobSession()
-        : null;
-    if (jobSession != null) {
-      jobSession.resumeJobs(this);
+    if (jbpmContext != null) {
+      JobSession jobSession = jbpmContext.getJobSession();
+      if (jobSession != null) jobSession.resumeJobs(this);
     }
   }
 
   void resumeTaskInstances() {
-    TaskMgmtInstance taskMgmtInstance = (processInstance != null ? processInstance.getTaskMgmtInstance()
-        : null);
-    if (taskMgmtInstance != null) {
-      taskMgmtInstance.resume(this);
-    }
+    TaskMgmtInstance taskMgmtInstance = processInstance.getTaskMgmtInstance();
+    if (taskMgmtInstance != null) taskMgmtInstance.resume(this);
   }
 
   // equals ///////////////////////////////////////////////////////////////////

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/java/org/jbpm/graph/node/Join.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -52,17 +52,17 @@
    * specifies if this join is a discriminator. a descriminator reactivates the parent when the
    * first concurrent token enters the join.
    */
-  boolean isDiscriminator = false;
+  boolean isDiscriminator;
 
   /**
    * a fixed set of concurrent tokens.
    */
-  Collection tokenNames = null;
+  Collection tokenNames;
 
   /**
    * a script that calculates concurrent tokens at runtime.
    */
-  Script script = null;
+  Script script;
 
   /**
    * reactivate the parent if the n-th token arrives in the join.
@@ -113,7 +113,7 @@
         JbpmContext jbpmContext = executionContext.getJbpmContext();
         Session session;
         if (jbpmContext != null && (session = jbpmContext.getSession()) != null) {
-          // lock for update by default (LockMode.UPGRADE)
+          // obtain update lock by default (LockMode.UPGRADE)
           LockMode lockMode = parentLockMode != null ? LockMode.parse(parentLockMode)
               : LockMode.UPGRADE;
           // load() hits the database as required, no need to flush() here
@@ -147,16 +147,16 @@
           }
           // if the result is a collection
           if (result instanceof Collection) {
-            // it must be a collection of tokenNames
+            // interpret as a collection of token names
             Collection runtimeTokenNames = (Collection) result;
             reactivateParent = mustParentBeReactivated(parentToken, runtimeTokenNames.iterator());
           }
-          // if it's a boolean...
+          // if it is a boolean...
           else if (result instanceof Boolean) {
             // the boolean specifies if the parent needs to be reactivated
             reactivateParent = ((Boolean) result).booleanValue();
           }
-          // otherwise
+          // any other object
           else {
             // non-null result means the parent needs to be reactivated
             reactivateParent = result != null;

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/graph/exe/Token.hbm.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/graph/exe/Token.hbm.xml	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/main/resources/org/jbpm/graph/exe/Token.hbm.xml	2010-02-05 17:59:02 UTC (rev 6165)
@@ -28,7 +28,8 @@
                  foreign-key="FK_TOKEN_PROCINST"
                  index="IDX_TOKEN_PROCIN"/>
     <many-to-one name="parent" 
-                 column="PARENT_" 
+                 column="PARENT_"
+                 cascade="lock"
                  foreign-key="FK_TOKEN_PARENT"
                  index="IDX_TOKEN_PARENT" />
     <many-to-one name="subProcessInstance" 

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/jbpm2375/JBPM2375Test.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -9,7 +9,7 @@
 /**
  * Test if the JobExecutorThread recovers from an Error
  * 
- * @see <a href="https://jira.jboss.org/jira/browse/JBPM-2357">JBPM-2357</a>
+ * @see <a href="https://jira.jboss.org/jira/browse/JBPM-2375">JBPM-2375</a>
  * @author mputz at redhat.com
  * @since 30-Jun-2009
  */

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/EsbActionHandler.java
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/EsbActionHandler.java	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/java/org/jbpm/mock/EsbActionHandler.java	2010-02-05 17:59:02 UTC (rev 6165)
@@ -30,6 +30,7 @@
 
 import org.jbpm.graph.def.ActionHandler;
 import org.jbpm.graph.exe.ExecutionContext;
+import org.jbpm.persistence.db.DbPersistenceService;
 
 /**
  * @author Alejandro Guizar
@@ -46,7 +47,7 @@
   private static final Log log = LogFactory.getLog(EsbActionHandler.class);
 
   public void execute(ExecutionContext executionContext) {
-    log.debug("'invoking' " + esbCategoryName + "::" + esbServiceName);
+    log.debug("invoking " + esbCategoryName + "::" + esbServiceName);
     try {
       for (Iterator i = bpmToEsbVars.elementIterator(); i.hasNext();) {
         Element bpmToEsbVar = (Element) i.next();
@@ -66,6 +67,8 @@
       executionContext.leaveNode();
     }
     catch (RuntimeException e) {
+      if (DbPersistenceService.isPersistenceException(e)) throw e;
+      log.debug("possibly recoverable exception in esb action", e);
       executionContext.leaveNode(exceptionTransition);
     }
   }

Modified: jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml
===================================================================
--- jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml	2010-02-05 10:50:17 UTC (rev 6164)
+++ jbpm3/branches/jbpm-3.2-soa/modules/core/src/test/resources/org/jbpm/jbpm2094/processdefinition.xml	2010-02-05 17:59:02 UTC (rev 6165)
@@ -54,7 +54,7 @@
     <transition to="join1"/>
   </node>
 
-  <node name="Dallas WHSE">
+  <node async="true" name="Dallas WHSE">
     <action class="org.jbpm.mock.EsbActionHandler">
       <esbCategoryName>BPM_Orchestration2_Service6</esbCategoryName>
       <esbServiceName>Service6</esbServiceName>
@@ -82,7 +82,7 @@
     <transition to="join1"/>
   </node>
 
-  <join name="join1">
+  <join async="true" name="join1">
     <transition to="Shipment Notice"/>
   </join>
 



More information about the jbpm-commits mailing list