[jbpm-commits] JBoss JBPM SVN: r6835 - jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Nov 20 22:47:28 EST 2010


Author: rebody
Date: 2010-11-20 22:47:28 -0500 (Sat, 20 Nov 2010)
New Revision: 6835

Modified:
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
   jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchSignalEvent.java
Log:
JBPM-2734 if cannot find execution for signal, don't throw a NPE

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-11-21 03:22:34 UTC (rev 6834)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/BpmnActivity.java	2010-11-21 03:47:28 UTC (rev 6835)
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -100,7 +101,7 @@
         execution.end();
       }
 
-      Map<Transition, ExecutionImpl> childExecutionsMap = new HashMap<Transition, ExecutionImpl>();
+      Map<Transition, ExecutionImpl> childExecutionsMap = new LinkedHashMap<Transition, ExecutionImpl>();
       for (Transition transition : transitions) {
         ExecutionImpl concurrentExecution = concurrentRoot.createExecution(transition.getName());
         concurrentExecution.setActivity(activity);
@@ -161,6 +162,9 @@
       throw new JbpmException("No outgoing sequence flow found for " + execution.getActivityName());
     }
 
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("forking transitions : " + forkingTransitions);
+    }
     return forkingTransitions;
   }
 

Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchSignalEvent.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchSignalEvent.java	2010-11-21 03:22:34 UTC (rev 6834)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/IntermediateCatchSignalEvent.java	2010-11-21 03:47:28 UTC (rev 6835)
@@ -27,6 +27,7 @@
 import org.jbpm.api.activity.ActivityExecution;
 import org.jbpm.api.listener.EventListener;
 import org.jbpm.api.listener.EventListenerExecution;
+import org.jbpm.internal.log.Log;
 import org.jbpm.pvm.internal.model.ExecutionImpl;
 
 /**
@@ -35,6 +36,8 @@
  */
 public class IntermediateCatchSignalEvent extends BpmnExternalActivity implements EventListener, BpmnEvent {
 
+  private static final Log log = Log.getLog(IntermediateCatchSignalEvent.class.getName());
+
   private static final long serialVersionUID = 1L;
 
   private String signalCode;
@@ -56,7 +59,12 @@
   public void notify(EventListenerExecution execution) throws Exception {
     Execution processInstance = execution.getProcessInstance();
     ExecutionImpl executionImpl = (ExecutionImpl) processInstance.findActiveExecutionIn(activityName);
-    proceed(executionImpl, findOutgoingSequenceFlow(executionImpl, CONDITIONS_CHECKED));
+
+    if (executionImpl == null) {
+      log.info("cannot find execution for : " + activityName);
+    } else {
+      proceed(executionImpl, findOutgoingSequenceFlow(executionImpl, CONDITIONS_CHECKED));
+    }
   }
 
   public void signal(ActivityExecution execution, String signalName, Map<String, ?> parameters) {



More information about the jbpm-commits mailing list