Bug 562649

Summary: The use of Container Override involves a StackOverflowError
Product: [Modeling] Sirius Reporter: Cedric Notot <cedric.notot>
Component: PropertiesAssignee: Project Inbox <sirius.properties-inbox>
Status: NEW --- QA Contact:
Severity: normal    
Priority: P3 CC: pierre-charles.david
Version: 6.3.0Keywords: triaged
Target Milestone: ---   
Hardware: All   
OS: All   
Whiteboard:
Attachments:
Description Flags
Example on basicfamily none

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)