Red Hat Bugzilla – Bug 1278596
Signal subprocess is never invoked
Last modified: 2015-12-01 07:25:07 EST
Created attachment 1090408 [details]
A reproducer process and a possible diff with the fix for this issue
Description of problem:
A signal subprocess in a process is not invoked. Signals send to the process aimed to invoke the subprocess are ignored.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Create a process and add a signal subprocess to it;
2. Inside the subprocess, add the signal itself, a script task to print some message to indicate that the subprocess was invoked and then an end event;
3. Use a script task to signal the process in the main process flow;
The process is finished without entering the subprocess;
It should invoke th subprocess.
Between update 2 and 3, the engine was updated to invoke process using the signal name, instead the id. The editor still looks for a signal with a given ID instead looking for its name. Further local tests using the branch 6.2.x seems to have solved the issue.
Attached you can find a simple process that can be used to reproduce this issue and also the diff file of the changes I made locally.
Not sure why you need custom diff when we have the commit on github https://github.com/droolsjbpm/jbpm-designer/commit/feb4a2a2b71a7f0be09ffe4a059925ce9b23cf42
also if it is not possible to patch the actual engine parser part (because lookup by id is the correct way to go anyways rather than the signal name) then i would even rather add backwards compatibility code into master and propagate to branches than use some custom diff. wdyt?
Thanks for your feedback on this BZ. Further discussion showed that this should be solved at the jbpm API level, hence I changing the component of this BZ to be jbpm core instead the designer.
moving to modified as it was fixed on master/6.3.x before, to double check all is good let's retest instead of closing
Verified in BPM Suite 6.2.0.CR2
Output of the reproducer: [see the signal is caught]
13:20:12,349 INFO [stdout] (http-localhost.localdomain/127.0.0.1:8080-7) Starting proc
13:20:12,353 INFO [stdout] (http-localhost.localdomain/127.0.0.1:8080-7) sending signal
13:20:12,360 INFO [stdout] (http-localhost.localdomain/127.0.0.1:8080-7) CATCHING SIGNAL