Bug 975935

Summary: Unable to build valid process from designer
Product: [JBoss] JBoss BPMS Platform 6 Reporter: Sona Mala <smala>
Component: jBPM DesignerAssignee: Tihomir Surdilovic <tsurdilo>
Status: CLOSED DUPLICATE QA Contact: Sona Mala <smala>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.0.0CC: kverlaen, mbaluch, rrajasek, vigoyal
Target Milestone: ER5Flags: kverlaen: needinfo+
Target Release: 6.0.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Summary: Multiple incoming/outgoing sequence flows to/from activities cause the build to fail in the Designer even though the process passes validation. This is caused by the lack of a system property in the Designer. In a future release, a process with multiple flows will fail validation as the validation errors from core engine will be added to the Designer validation process. Cause: Build a valid BPMN2 process in Designer with multiple flows and from multiple activities. Validate and try to create a build. Consequence: Validation passes, but the build fails. Workaround: None at this stage. Expected Fix in ER5. Result: Designer will not allow the user to build a process with multiple flows from multiple activities.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-19 10:04:33 EST Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
Image of BPMN2 Process
none
server.log none

Description Sona Mala 2013-06-19 11:51:43 EDT
Created attachment 763024 [details]
Image of BPMN2 Process

Description of problem:
If I want to build a valid BPMN2 process, which contains multiple incoming/outgoing sequence flows to/from some activities, then a build shows attached ERROR in server.log.

This process was modelled in the designer and the validation was without errors.

Version-Release number of selected component (if applicable):
6.0.0 DR5 (Beta3)


Steps to Reproduce:
2. Create new package "default1" in resources of "HR" project
3. Create new process "proc.bpmn2" in package "default1"

4. Add start node into process.
5. Activate start node and attach task "A"
6. Activate new task "A" and attach task "B"
7. Activate task "A" and attach task "C"
8. Activate task "B" and attach task "D"
9. Activate task "C" and add sequence node from C to D
10. Activate task "D" and attach end event

11. Click on Validate icon in the Designer's tool bar
12. Save process
13. Open Project Editor for "myProject"
14. Set KBase to "default1"
15. Set KSession to "mySession"
16. Click on Build&Deploy

Actual results:
After step 16 you can see error in server.log
(java.lang.IllegalArgumentException: This type of node cannot have more than one outgoing connection!)


Expected results:
In step 11: Validation is OK so I expect that build should be without problem.


Additional info:
BPMN2 specification says:
  * An Activity MAY be a target for Sequence Flows; it can have multiple incoming Sequence Flows. Incoming Sequence Flows MAY be from an alternative path and/or parallel paths.
  * An Activity MAY be a source for Sequence Flows; it can have multiple outgoing Sequence Flows. If there are multiple outgoing Sequence Flows, then this means that a separate parallel path is being created for each Sequence Flow (i.e., tokens will be generated for each outgoing Sequence Flow from the Activity).
Comment 1 Sona Mala 2013-06-19 11:53:29 EDT
Created attachment 763027 [details]
server.log
Comment 2 Sona Mala 2013-06-19 11:56:03 EDT
I do not know if this is problem of Designer or jBPM. I know that Designer supports BPMN2 specification but jBPM does not.
Comment 3 Kris Verlaenen 2013-06-27 08:30:37 EDT
We recommend not using multiple incoming or outgoing connections (except for gateways), but they are supported in the engine if necessary, but you need to configure a system parameter to enable this behaviour.

Designer should probably also use this same parameter during validation to determine if multiple incoming or outgoing connections should be accepted or not.
Comment 5 Kris Verlaenen 2013-09-24 11:14:19 EDT
Since designer now also shows all parser error from jbpm core engine, it should be able to detect issues with multiple incoming and outgoing connections and take the system parameter that can be used to configure this into account.  Are additional changes required?
Comment 6 Sona Mala 2013-09-25 10:25:02 EDT
Hi Kris,
please why we have two different validators? The first one is default Designer validator (icon in toolbar). It does not know about this issue. The second one is running after the process is saved. It shows this issue.

Which one should an user uses? How does we document these validators?
Comment 7 Kris Verlaenen 2013-09-25 10:50:30 EDT
The validation in designer is more advanced than the one as part of the core engine (which explains the need for two versions).  Recently, we however made sure that all changes produced by the core engine validator are also added to the issue list in designer.  So this should no longer be an issue I believe.
Comment 8 Tihomir Surdilovic 2013-09-30 14:01:03 EDT
per comments the current behavior is expected. setting to modified.
Comment 9 Sona Mala 2013-12-19 10:04:33 EST

*** This bug has been marked as a duplicate of bug 994373 ***