Bug 562649 - The use of Container Override involves a StackOverflowError
Summary: The use of Container Override involves a StackOverflowError
Status: NEW
Alias: None
Product: Sirius
Classification: Modeling
Component: Properties (show other bugs)
Version: 6.3.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2020-04-30 05:24 EDT by Cedric Notot CLA
Modified: 2020-05-04 11:33 EDT (History)
1 user (show)

See Also:


Attachments
Example on basicfamily (21.75 KB, application/x-zip-compressed)
2020-04-30 05:33 EDT, Cedric Notot CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Cedric Notot CLA 2020-04-30 05:24:16 EDT
When you use a Container Override to override a container located in an other odesign, a StackOverflowError is thrown at runtime when you select the mapping instance which contains the overridden container.

The stack trace:

org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.processDescriptionOverrides(DefaultDescriptionPreprocessor.java:107) at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.convert(DefaultDescriptionPreprocessor.java:81) at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$6(DefaultDescriptionPreprocessor.java:284) at java.util.Optional.ifPresent(Unknown Source)
Comment 1 Cedric Notot CLA 2020-04-30 05:33:29 EDT
Created attachment 282629 [details]
Example on basicfamily
Comment 2 Pierre-Charles David CLA 2020-05-04 11:33:24 EDT
Confirmed, thanks for the report.

Steps to reproduce:

1. Import the basic family metamodel & launch a runtime, or install it directly in the host
2. Import the attached projects in the workspace.
3. Create a modeling project with a sample basicfamily instance, for example using the "Basic Family Sample Model" example.
4. Enable both viewpoints defined in the test VSMs: "Test" and "Test Extension"
5. Create and open a diagram on the sample model.

=> StackOverflow

	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$2(DefaultDescriptionPreprocessor.java:118)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$1(DefaultDescriptionPreprocessor.java:114)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$0(DefaultDescriptionPreprocessor.java:110)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.processDescriptionOverrides(DefaultDescriptionPreprocessor.java:107)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.convert(DefaultDescriptionPreprocessor.java:81)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$6(DefaultDescriptionPreprocessor.java:284)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.processMonoValuedEReference(DefaultDescriptionPreprocessor.java:283)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.processDescriptionFeature(DefaultDescriptionPreprocessor.java:209)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.processDescriptionPropertiesRecursively(DefaultDescriptionPreprocessor.java:155)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.convert(DefaultDescriptionPreprocessor.java:82)
	at org.eclipse.sirius.properties.core.api.DefaultDescriptionPreprocessor.lambda$2(DefaultDescriptionPreprocessor.java:118)