-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible stack overflow when invoking "Expand All" on a domain #3958
Comments
Actually, "Expand All" is not even needed: Capture.video.du.2024-09-03.19-00-42.mp4 |
I reproduce this problem using UML workflow. I would try to contribute a fix for this composed of two features: First add an "ancestorIds" in the variable manager that keeps tracks of all parent ids of the current rendering TreeItem. This variable could be used to generate truly unique id for TreeItem. That would give the opportunity for the specifier to create such loop. Add a security in Sirius Web that prevents the creating of a child if its id is contained in the "ancestorId" list. To make the user aware of the problem I would suggest to return a "Virtual" Tree item that show the possible infinite loop. This item will have the same icon than the TreeItem causing the problem plus a warning sign. A prefix will be added to the label to identify the problem. Do you think that could do the trick? This contribution do not fix the "Expand All" action only the stackoverflow during the render phase. |
This commit provide a partial fix for the given bug. It only prevents rendering twice in the same tree path and expanded element because it would cause an infinite loop. A fix still need to be implemented in the "Expand All" action to prevent stackoverfow when rendering a infinite loop with non unique ID. Bug: eclipse-sirius#3958 Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
This commit provide a partial fix for the given bug. It only prevents rendering twice in the same tree path and expanded element because it would cause an infinite loop. A fix still need to be implemented in the "Expand All" action to prevent stackoverfow when rendering a infinite loop with non unique ID. Bug: eclipse-sirius#3958 Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
Since the addition of support virtual nodes in the Explorer, and in particular support for
EStructuralFeature.Setting
, it is possible to create virtually infinite trees.For example create a Domain definition with two entities A and B; set B as superType of A, and A as superType of B:
Then try to invoke "Expand All" on either A or B:
The text was updated successfully, but these errors were encountered: