[jboss-svn-commits] JBL Code SVN: r34218 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 27 09:22:26 EDT 2010
Author: KrisVerlaenen
Date: 2010-07-27 09:22:26 -0400 (Tue, 27 Jul 2010)
New Revision: 34218
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
Log:
JBRULES-2598: WorkItemNodeInstance should not reset workItemId to -1 after completion
- using state of work item to derive state
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java 2010-07-27 12:58:40 UTC (rev 34217)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java 2010-07-27 13:22:26 UTC (rev 34218)
@@ -119,9 +119,8 @@
}
if (!workItemNode.isWaitForCompletion()) {
triggerCompleted();
- } else {
- this.workItemId = workItem.getId();
}
+ this.workItemId = workItem.getId();
}
protected WorkItem createWorkItem(WorkItemNode workItemNode) {
@@ -187,6 +186,7 @@
}
public void triggerCompleted(WorkItem workItem) {
+ this.workItem = workItem;
WorkItemNode workItemNode = getWorkItemNode();
if (workItemNode != null) {
for (Iterator<Map.Entry<String, String>> iterator = getWorkItemNode().getOutMappings().entrySet().iterator(); iterator.hasNext(); ) {
@@ -210,7 +210,6 @@
}
}
}
- this.workItemId = -1;
if (isInversionOfControl()) {
WorkingMemory workingMemory = ((ProcessInstance) getProcessInstance()).getWorkingMemory();
workingMemory.update(workingMemory.getFactHandle(this), this);
@@ -220,7 +219,10 @@
}
public void cancel() {
- if (workItemId != -1) {
+ WorkItem workItem = getWorkItem();
+ if (workItem != null &&
+ workItem.getState() != WorkItem.COMPLETED &&
+ workItem.getState() != WorkItem.ABORTED) {
((WorkItemManager) ((ProcessInstance) getProcessInstance())
.getWorkingMemory().getWorkItemManager()).internalAbortWorkItem(workItemId);
}
More information about the jboss-svn-commits
mailing list