Bug 447824

Summary: Cannot create two aggregations between the same two classes
Product: [Applications] umbrello Reporter: Robert Hairgrove <code>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: CONFIRMED ---    
Severity: normal CC: okellogg
Priority: NOR    
Version First Reported In: Git   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Model of a simple graph structure
Reproduction using "Add Point" before adding the second association

Description Robert Hairgrove 2022-01-02 12:25:15 UTC
Created attachment 145048 [details]
Model of a simple graph structure

SUMMARY
Cannot create two aggregations between the same two classes. This is necessary if modeling a graph structure, for example (see attached picture of what I am trying to achieve).

STEPS TO REPRODUCE
1. Open a new class diagram, or use the default diagram;
2. Add two classes : Node and Edge;
3. Draw an aggregation from Edge to Node. Give it the role "source", multiplicity 1..1
4. Try to draw another aggregation similar to the above with role "target"

OBSERVED RESULT
The second aggregation is not created.

EXPECTED RESULT
Multiple aggregations should be possible.

SOFTWARE/OS VERSIONS
Linux: Ubuntu 18.04.x
(available in About System)
Qt Version: 5

ADDITIONAL INFORMATION
There is an interesting comment in the method body of "AssociationWidget::create()" which probably applies here. ;)
Comment 1 Oliver Kellogg 2022-01-02 14:04:12 UTC
Created attachment 145055 [details]
Reproduction using "Add Point" before adding the second association

In the attachment bug447824-mutual-aggreg.xmi I followed your steps but after creating the first association I right-clicked on the "source" association and selected "Add Point" and then moved the waypoint so that the association is not a straight line.
I could then add the second association.
The problem is that if the "Add Point" is left away then the second association line exactly overlaps the first.
I just tried this scenario and confirm in that case it is hard to distinguish the two, or add waypoints after the fact.