[jboss-jira] [JBoss JIRA] Closed: (JBPM-967) Triggered timer on task does not end task, thus leaving task in users inbox.
Tom Baeyens (JIRA)
jira-events at lists.jboss.org
Fri Jun 1 08:45:09 EDT 2007
[ 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
More information about the jboss-jira
mailing list