From d79aa7f85a70db1db168f7541af90e382290c6a5 Mon Sep 17 00:00:00 2001 From: Pierre-Charles David Date: Thu, 2 Jul 2026 08:43:27 +0200 Subject: [PATCH] [2329] Fix invalid relation created when importing a requirement inside a requirement Bug: https://github.com/eclipse-syson/syson/issues/2329 Signed-off-by: Pierre-Charles David --- CHANGELOG.adoc | 1 + .../src/main/java/org/eclipse/syson/sysml/ASTTransformer.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 006d11fa3..1c71df895 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -35,6 +35,7 @@ It has long been unused by Sirius Web itself (since the transition to MUI). - https://github.com/eclipse-syson/syson/issues/2194[#2194] [diagrams] Properly report feedback messages to user when using _ISysMLMoveElementService_. - https://github.com/eclipse-syson/syson/issues/2306[#2306] [diagrams] Fixed an error when trying to rename a constraint displayed as a list item through direct edit. - https://github.com/eclipse-syson/syson/issues/2318[#2318] [diagrams] Direct edit on a constraint label now ignores the expression part (`{ ... }`) if present in the new text. +- https://github.com/eclipse-syson/syson/issues/2329[#2329] [import] Fix invalid relation created when importing a requirement inside a requirement. === Improvements diff --git a/backend/application/syson-sysml-import/src/main/java/org/eclipse/syson/sysml/ASTTransformer.java b/backend/application/syson-sysml-import/src/main/java/org/eclipse/syson/sysml/ASTTransformer.java index c82754ac3..222acf98e 100644 --- a/backend/application/syson-sysml-import/src/main/java/org/eclipse/syson/sysml/ASTTransformer.java +++ b/backend/application/syson-sysml-import/src/main/java/org/eclipse/syson/sysml/ASTTransformer.java @@ -192,7 +192,7 @@ private Runnable addInParent(Element parent, Element child) { if (child instanceof Import imp) { parent.getOwnedRelationship().add(imp); undo = () -> parent.getOwnedRelationship().remove(imp); - } else if (child instanceof Expression expr) { + } else if (child instanceof Expression expr && !(child instanceof Usage)) { var compatibleOwnerships = this.metamodelQueryElementService.getCompatibleExpressionOwnerships(parent); if (!compatibleOwnerships.isEmpty()) { var selectedOwnership = compatibleOwnerships.get(0);