[
http://jira.jboss.com/jira/browse/JBPM-967?page=all ]
Tom Baeyens closed JBPM-967.
----------------------------
Resolution: Cannot Reproduce Bug
not a bug but intended behaviour. when a task node is left, the signalling capabilities
of the task are automatically removed, which means that ending the task will no longer be
able to continue the token later on.
try with end-tasks="true" on the task node. that should do the trick.
Triggered timer on task does not end task, thus leaving task in users
inbox.
----------------------------------------------------------------------------
Key: JBPM-967
URL:
http://jira.jboss.com/jira/browse/JBPM-967
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2
Environment: Windows, Mac OS. Tomcat / MySQL 5.
Reporter: Dave Caruana
Assigned To: Tom Baeyens
The "timer" task in the following process definition correctly initiates the
timer. The timer is successfully is triggered after a minute (or so) and the
"trigger" transition is correctly signalled. As a result, the
"triggered" task node is entered and its task assigned.
However, the task assigned in "timer" remains assigned. It's not ended.
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1"
name="wf:testtimers">
<swimlane name="initiator" />
<start-state name="start">
<task swimlane="initiator" />
<transition name="" to="timer"/>
</start-state>
<task-node name="timer">
<task swimlane="initiator">
<timer duedate="1 minute" transition="trigger">
<script>
System.out.println("Trigger...");
</script>
</timer>
</task>
<transition name="trigger" to="triggered" />
</task-node>
<task-node name="triggered">
<event type="node-enter">
<script>
System.out.println("Triggered");
</script>
</event>
<task swimlane="initiator"/>
<transition name="" to="end" />
</task-node>
<end-state name="end" />
</process-definition>
I applied the following patch to Timer.java, but am unsure if it's the correct
approach, although it fixes the above. It determines a task instance is associated, and
if so, ends the task, rather than the token directly.
Line 84:
// then take a transition if one is specified
if ((transitionName != null) && (exception == null)) // and if no unhandled
// exception occurred
// during the action
{
if (taskInstance != null)
{
if (taskInstance.getToken().getNode().hasLeavingTransition(transitionName))
{
taskInstance.end(transitionName);
}
}
else if (token.getNode().hasLeavingTransition(transitionName))
{
token.signal(transitionName);
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira