Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian W. Damus2018-04-23 19:36:28 +0000
committerNicolas FAUVERGUE2018-05-29 13:30:23 +0000
commite65c18ff964d6407a3c750de581984eafd9044ee (patch)
tree5cf684ab932e46d69000886d5e9bf624e605f49f /tests/junit/plugins/uml
parentc18fa4d3b4a2c896323a3be417f13c58541b2166 (diff)
downloadorg.eclipse.papyrus-e65c18ff964d6407a3c750de581984eafd9044ee.tar.gz
org.eclipse.papyrus-e65c18ff964d6407a3c750de581984eafd9044ee.tar.xz
org.eclipse.papyrus-e65c18ff964d6407a3c750de581984eafd9044ee.zip
Bug 533676: [Sequence Diagram] Validation should be triggered after
creation of CombinedFragment or InteractionOperand Add custom well-formedness rules to check that messages and execution specifications do not cross interaction operand boundaries. Ensure that re-sizing of an interaction operand triggers validation of that operand and the interaction fragments that it contains, plus any messages originating or terminating within it. Because the default operand of a new combined fragment is now resized upon creation, a new operand is likewise validated for its contents. Fix validation hook and diagnostician extension point schema definitions to match reality of the extension point implementations. Remove UI contributions for validation, to avoid workflow interrution. Validation framework is still slow, but less intrusive for the user. A preference may control the validation activation on user actions. Update the failing compilation on gmfdiag.common.tests. Add a preference to switch on or off the validation. Change-Id: Ic7d83eb18315ce714dc7c71bff38276f330ef260 Also-by: RĂ©mi Schnekenburger <rschnekenburger@eclipsesource.com> Signed-off-by: Christian W. Damus <give.a.damus@gmail.com>
Diffstat (limited to 'tests/junit/plugins/uml')
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF4
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.di2
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.notation152
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.uml41
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.di2
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.notation115
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.uml29
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/CombinedFragmentRegressionTest.java50
8 files changed, 394 insertions, 1 deletions
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
index f66bf1554bb..0878ba1c853 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/META-INF/MANIFEST.MF
@@ -20,7 +20,9 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.papyrus.infra.ui;bundle-version="[2.0.0,3.0.0)",
org.eclipse.papyrus.uml.diagram.stereotypeproperty.tests;bundle-version="[1.2.0,2.0.0)",
org.eclipse.papyrus.infra.gmfdiag.preferences,
- org.eclipse.ui.workbench
+ org.eclipse.ui.workbench,
+ org.eclipse.papyrus.uml.services.decoration;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.uml.oclconstraintevaluation;bundle-version="[1.2.0,2.0.0)"
Export-Package: org.eclipse.papyrus.uml.diagram.sequence.tests
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.di
new file mode 100644
index 00000000000..8c549eecdc6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.notation
new file mode 100644
index 00000000000..290624cedf7
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.notation
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_4dbIsEY5Eeiq37bXGi3QbQ" type="PapyrusUMLSequenceDiagram" name="sequence" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_4dbIsUY5Eeiq37bXGi3QbQ" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4dbIskY5Eeiq37bXGi3QbQ" type="Interaction_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4dbIs0Y5Eeiq37bXGi3QbQ" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ou3g4EcEEei509ztwo7HDQ" type="CombinedFragment_Shape">
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ou7LQEcEEei509ztwo7HDQ" type="CombinedFragment_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_ou7LREcEEei509ztwo7HDQ" type="InteractionOperand_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ou7LRkcEEei509ztwo7HDQ" type="InteractionOperand_Guard">
+ <element xmi:type="uml:InteractionConstraint" href="bug533676.uml#_ouj-4UcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ou7LR0cEEei509ztwo7HDQ" x="5" y="5"/>
+ </children>
+ <element xmi:type="uml:InteractionOperand" href="bug533676.uml#_ouj-4EcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ou7LRUcEEei509ztwo7HDQ" width="100" height="82"/>
+ </children>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ou7LQUcEEei509ztwo7HDQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ou7LQkcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ou7LQ0cEEei509ztwo7HDQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_e9f4AEcFEei509ztwo7HDQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_e9f4AUcFEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e9f4AkcFEei509ztwo7HDQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lUyKMEcFEei509ztwo7HDQ" type="Gate_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lUyKMkcFEei509ztwo7HDQ" type="Gate_NameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lUyKM0cFEei509ztwo7HDQ" x="25" y="3"/>
+ </children>
+ <element xmi:type="uml:Gate" href="bug533676.uml#_lUpnUEcFEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lUyKMUcFEei509ztwo7HDQ" x="353" y="172"/>
+ </children>
+ <element xmi:type="uml:CombinedFragment" href="bug533676.uml#_ouV8cEcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ou3g4UcEEei509ztwo7HDQ" x="14" y="40" width="361" height="202"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_5d8KgEY5Eeiq37bXGi3QbQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5d8xkEY5Eeiq37bXGi3QbQ" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mJmu0EcEEei509ztwo7HDQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mJmu0UcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mJmu0kcEEei509ztwo7HDQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ad13oEcFEei509ztwo7HDQ" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ad2esEcFEei509ztwo7HDQ" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ad2esUcFEei509ztwo7HDQ" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676.uml#_AdkK0EcFEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ad13oUcFEei509ztwo7HDQ" x="40" y="190" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug533676.uml#_5dwkUEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5d8KgUY5Eeiq37bXGi3QbQ" x="49" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_58sjEEY5Eeiq37bXGi3QbQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_58tKIEY5Eeiq37bXGi3QbQ" type="Lifeline_NameLabel"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_580e4EY5Eeiq37bXGi3QbQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_580e4UY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_580e4kY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nvaUEY5Eeiq37bXGi3QbQ" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__nvaUkY5Eeiq37bXGi3QbQ" type="BehaviorExecutionSpecification_Behavior">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__nvaU0Y5Eeiq37bXGi3QbQ" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676.uml#__nrv8EY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__nvaUUY5Eeiq37bXGi3QbQ" x="40" y="70" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug533676.uml#_58nDgEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_58sjEUY5Eeiq37bXGi3QbQ" x="244" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s26UUEcEEei509ztwo7HDQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s267YEcEEei509ztwo7HDQ" type="Lifeline_NameLabel"/>
+ <element xmi:type="uml:Lifeline" href="bug533676.uml#_s2uuIEcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s26UUUcEEei509ztwo7HDQ" x="454" y="10"/>
+ </children>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dbItEY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug533676.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dbItUY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_4dbItkY5Eeiq37bXGi3QbQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_4dbIt0Y5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_4dbIuEY5Eeiq37bXGi3QbQ" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Class" href="bug533676.uml#_xvHdoEY5Eeiq37bXGi3QbQ"/>
+ </styles>
+ <element xmi:type="uml:Interaction" href="bug533676.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="__mPlgEY5Eeiq37bXGi3QbQ" type="Message_SynchEdge" source="_5d8KgEY5Eeiq37bXGi3QbQ" target="_58sjEEY5Eeiq37bXGi3QbQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="__mQMkEY5Eeiq37bXGi3QbQ" type="Message_SynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__mQMkUY5Eeiq37bXGi3QbQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__mQzoEY5Eeiq37bXGi3QbQ" type="Message_SynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__mQzoUY5Eeiq37bXGi3QbQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__mPlgUY5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="__mRasEY5Eeiq37bXGi3QbQ"/>
+ <element xmi:type="uml:Message" href="bug533676.uml#__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__mPlgkY5Eeiq37bXGi3QbQ" points="[0, 0, -195, 0]$[195, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nYN8EY5Eeiq37bXGi3QbQ" id="(0.5,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nYN8UY5Eeiq37bXGi3QbQ" id="(0.5,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__n2vEEY5Eeiq37bXGi3QbQ" type="Message_ReplyEdge" source="_58sjEEY5Eeiq37bXGi3QbQ" target="_5d8KgEY5Eeiq37bXGi3QbQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="__n2vE0Y5Eeiq37bXGi3QbQ" type="Message_ReplyNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__n2vFEY5Eeiq37bXGi3QbQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__n3WIEY5Eeiq37bXGi3QbQ" type="Message_ReplyStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__n3WIUY5Eeiq37bXGi3QbQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__n2vEUY5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="__n3WIkY5Eeiq37bXGi3QbQ"/>
+ <element xmi:type="uml:Message" href="bug533676.uml#__n054EY5Eeiq37bXGi3QbQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__n2vEkY5Eeiq37bXGi3QbQ" points="[0, 0, 195, 0]$[-195, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__n39MEY5Eeiq37bXGi3QbQ" id="(0.5,0.24285714285714285)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__n39MUY5Eeiq37bXGi3QbQ" id="(0.5,0.24285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wfAcYEcEEei509ztwo7HDQ" type="Message_AsynchEdge" source="_58sjEEY5Eeiq37bXGi3QbQ" target="_s26UUEcEEei509ztwo7HDQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wfAcY0cEEei509ztwo7HDQ" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wfBDcEcEEei509ztwo7HDQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wfBDcUcEEei509ztwo7HDQ" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wfBDckcEEei509ztwo7HDQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wfAcYUcEEei509ztwo7HDQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_wfBDc0cEEei509ztwo7HDQ"/>
+ <element xmi:type="uml:Message" href="bug533676.uml#_weuvkEcEEei509ztwo7HDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wfAcYkcEEei509ztwo7HDQ" points="[-10, 5, -220, -20]$[210, 25, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wfeWcEcEEei509ztwo7HDQ" id="(0.5,0.15714285714285714)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wfeWcUcEEei509ztwo7HDQ" id="(0.5,0.15714285714285714)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ncdoYEcFEei509ztwo7HDQ" type="Message_AsynchEdge" source="_5d8KgEY5Eeiq37bXGi3QbQ" target="_lUyKMEcFEei509ztwo7HDQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncdoY0cFEei509ztwo7HDQ" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncdoZEcFEei509ztwo7HDQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncdoZUcFEei509ztwo7HDQ" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncdoZkcFEei509ztwo7HDQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ncdoYUcFEei509ztwo7HDQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_ncdoZ0cFEei509ztwo7HDQ"/>
+ <element xmi:type="uml:Message" href="bug533676.uml#_ncUecEcFEei509ztwo7HDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ncdoYkcFEei509ztwo7HDQ" points="[-10, 10, -284, 21]$[274, -11, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nc4fIEcFEei509ztwo7HDQ" id="(0.5,0.3)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nc5GMEcFEei509ztwo7HDQ" id="(0.0,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ncdoYEcFGei509ztwo7HDQ" type="Message_AsynchEdge" source="_lUyKMEcFEei509ztwo7HDQ" target="_s26UUEcEEei509ztwo7HDQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncdoY0cFGei509ztwo7HDQ" type="Message_AsynchNameLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncdoZEcFGei509ztwo7HDQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ncdoZUcFGei509ztwo7HDQ" type="Message_AsynchStereotypeLabel">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ncdoZkcFGei509ztwo7HDQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ncdoYUcFGei509ztwo7HDQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_ncdoZ0cFGei509ztwo7HDQ"/>
+ <element xmi:type="uml:Message" href="bug533676.uml#_9rM7cEcFEei509ztwo7HDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ncdoYkcFGei509ztwo7HDQ" points="[-10, 10, -284, 21]$[274, -11, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nc4fIEcFGei509ztwo7HDQ" id="(0.0,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nc5GMEcFGei509ztwo7HDQ" id="(0.5,0.3)"/>
+ </edges>
+</notation:Diagram>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.uml
new file mode 100644
index 00000000000..f3874fcf5fb
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676.uml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_vdeLIEY5Eeiq37bXGi3QbQ" name="bug533676">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_voSUAEY5Eeiq37bXGi3QbQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xvHdoEY5Eeiq37bXGi3QbQ" name="Foo">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z1Z0sEY5Eeiq37bXGi3QbQ" name="a" visibility="public"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1ovakEY5Eeiq37bXGi3QbQ" name="b" visibility="public"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qdb7gEcEEei509ztwo7HDQ" name="c" visibility="public"/>
+ <ownedBehavior xmi:type="uml:Interaction" xmi:id="_3_vHIEY5Eeiq37bXGi3QbQ" name="doIt">
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_5dwkUEY5Eeiq37bXGi3QbQ" name="a" represents="_z1Z0sEY5Eeiq37bXGi3QbQ" coveredBy="_ouj-4EcEEei509ztwo7HDQ __mCxMEY5Eeiq37bXGi3QbQ __n2IAUY5Eeiq37bXGi3QbQ _AdqRcEcFEei509ztwo7HDQ _AdkK0EcFEei509ztwo7HDQ _ncVFgEcFEei509ztwo7HDQ _Adq4gEcFEei509ztwo7HDQ"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_58nDgEY5Eeiq37bXGi3QbQ" name="b" represents="_1ovakEY5Eeiq37bXGi3QbQ" coveredBy="_ouj-4EcEEei509ztwo7HDQ __mD_UEY5Eeiq37bXGi3QbQ _we02MEcEEei509ztwo7HDQ __n2IAEY5Eeiq37bXGi3QbQ __nrv8EY5Eeiq37bXGi3QbQ"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_s2uuIEcEEei509ztwo7HDQ" name="c" represents="_qdb7gEcEEei509ztwo7HDQ" coveredBy="_we1dQEcEEei509ztwo7HDQ _ouj-4EcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:CombinedFragment" xmi:id="_ouV8cEcEEei509ztwo7HDQ" name="cfrag" interactionOperator="opt">
+ <cfragmentGate xmi:type="uml:Gate" xmi:id="_lUpnUEcFEei509ztwo7HDQ" name="gate" message="_ncUecEcFEei509ztwo7HDQ"/>
+ <operand xmi:type="uml:InteractionOperand" xmi:id="_ouj-4EcEEei509ztwo7HDQ" name="opt" covered="_s2uuIEcEEei509ztwo7HDQ _58nDgEY5Eeiq37bXGi3QbQ _5dwkUEY5Eeiq37bXGi3QbQ">
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__mCxMEY5Eeiq37bXGi3QbQ" name="request-send" covered="_5dwkUEY5Eeiq37bXGi3QbQ" message="__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__mD_UEY5Eeiq37bXGi3QbQ" name="request-recv" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="__nrv8EY5Eeiq37bXGi3QbQ" name="exec1" covered="_58nDgEY5Eeiq37bXGi3QbQ" finish="__n2IAEY5Eeiq37bXGi3QbQ" start="__mD_UEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_we02MEcEEei509ztwo7HDQ" name="async-send" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="_weuvkEcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__n2IAEY5Eeiq37bXGi3QbQ" name="reply-send" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="__n054EY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__n2IAUY5Eeiq37bXGi3QbQ" name="reply-recv" covered="_5dwkUEY5Eeiq37bXGi3QbQ" message="__n054EY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_AdqRcEcFEei509ztwo7HDQ" name="exec2-start" covered="_5dwkUEY5Eeiq37bXGi3QbQ" execution="_AdkK0EcFEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_AdkK0EcFEei509ztwo7HDQ" name="exec2" covered="_5dwkUEY5Eeiq37bXGi3QbQ" finish="_Adq4gEcFEei509ztwo7HDQ" start="_AdqRcEcFEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ncVFgEcFEei509ztwo7HDQ" name="to-gate-send" covered="_5dwkUEY5Eeiq37bXGi3QbQ" message="_ncUecEcFEei509ztwo7HDQ"/>
+ <guard xmi:type="uml:InteractionConstraint" xmi:id="_ouj-4UcEEei509ztwo7HDQ" name="guard">
+ <specification xmi:type="uml:LiteralBoolean" xmi:id="_3b5WAEcEEei509ztwo7HDQ"/>
+ </guard>
+ </operand>
+ </fragment>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_we1dQEcEEei509ztwo7HDQ" name="async-recv" covered="_s2uuIEcEEei509ztwo7HDQ" message="_weuvkEcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_G-MJwEcGEei509ztwo7HDQ" name="from-gate-recv" covered="_s2uuIEcEEei509ztwo7HDQ" message="_9rM7cEcFEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_Adq4gEcFEei509ztwo7HDQ" name="exec2-finish" covered="_5dwkUEY5Eeiq37bXGi3QbQ" execution="_AdkK0EcFEei509ztwo7HDQ"/>
+ <message xmi:type="uml:Message" xmi:id="__l6OUEY5Eeiq37bXGi3QbQ" name="request" receiveEvent="__mD_UEY5Eeiq37bXGi3QbQ" sendEvent="__mCxMEY5Eeiq37bXGi3QbQ"/>
+ <message xmi:type="uml:Message" xmi:id="__n054EY5Eeiq37bXGi3QbQ" messageSort="reply" receiveEvent="__n2IAUY5Eeiq37bXGi3QbQ" sendEvent="__n2IAEY5Eeiq37bXGi3QbQ"/>
+ <message xmi:type="uml:Message" xmi:id="_weuvkEcEEei509ztwo7HDQ" name="async" messageSort="asynchCall" receiveEvent="_we1dQEcEEei509ztwo7HDQ" sendEvent="_we02MEcEEei509ztwo7HDQ"/>
+ <message xmi:type="uml:Message" xmi:id="_ncUecEcFEei509ztwo7HDQ" name="to-gate" messageSort="asynchCall" receiveEvent="_lUpnUEcFEei509ztwo7HDQ" sendEvent="_ncVFgEcFEei509ztwo7HDQ"/>
+ <message xmi:type="uml:Message" xmi:id="_9rM7cEcFEei509ztwo7HDQ" name="from-gate" messageSort="asynchCall" receiveEvent="_G-MJwEcGEei509ztwo7HDQ" sendEvent="_lUpnUEcFEei509ztwo7HDQ"/>
+ </ownedBehavior>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.di
new file mode 100644
index 00000000000..8c549eecdc6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.notation
new file mode 100644
index 00000000000..ac62c506b32
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.notation
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_4dbIsEY5Eeiq37bXGi3QbQ" type="PapyrusUMLSequenceDiagram" name="sequence" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_4dbIsUY5Eeiq37bXGi3QbQ" type="Interaction_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4dbIskY5Eeiq37bXGi3QbQ" type="Interaction_NameLabel">
+ <element xmi:type="uml:Interaction" href="bug533676a.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_4dbIs0Y5Eeiq37bXGi3QbQ" type="Interaction_SubfragmentCompartment">
+ <children xmi:type="notation:Shape" xmi:id="_5d8KgEY5Eeiq37bXGi3QbQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_5d8xkEY5Eeiq37bXGi3QbQ" type="Lifeline_NameLabel">
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_5dwkUEY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mJmu0EcEEei509ztwo7HDQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mJmu0UcEEei509ztwo7HDQ"/>
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_5dwkUEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mJmu0kcEEei509ztwo7HDQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Ad13oEcFEei509ztwo7HDQ" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Ad2esEcFEei509ztwo7HDQ" type="BehaviorExecutionSpecification_Behavior">
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676a.uml#_AdkK0EcFEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Ad2esUcFEei509ztwo7HDQ" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676a.uml#_AdkK0EcFEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ad13oUcFEei509ztwo7HDQ" x="40" y="190" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_5dwkUEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5d8KgUY5Eeiq37bXGi3QbQ" x="49" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_58sjEEY5Eeiq37bXGi3QbQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_58tKIEY5Eeiq37bXGi3QbQ" type="Lifeline_NameLabel">
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_58nDgEY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_580e4EY5Eeiq37bXGi3QbQ" type="compartment_shape_display">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_580e4UY5Eeiq37bXGi3QbQ"/>
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_58nDgEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_580e4kY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__nvaUEY5Eeiq37bXGi3QbQ" type="BehaviorExecutionSpecification_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="__nvaUkY5Eeiq37bXGi3QbQ" type="BehaviorExecutionSpecification_Behavior">
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676a.uml#__nrv8EY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__nvaU0Y5Eeiq37bXGi3QbQ" x="18" y="18"/>
+ </children>
+ <element xmi:type="uml:BehaviorExecutionSpecification" href="bug533676a.uml#__nrv8EY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__nvaUUY5Eeiq37bXGi3QbQ" x="40" y="70" width="20" height="100"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_58nDgEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_58sjEUY5Eeiq37bXGi3QbQ" x="244" y="10"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_s26UUEcEEei509ztwo7HDQ" type="Lifeline_Shape">
+ <children xmi:type="notation:DecorationNode" xmi:id="_s267YEcEEei509ztwo7HDQ" type="Lifeline_NameLabel">
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_s2uuIEcEEei509ztwo7HDQ"/>
+ </children>
+ <element xmi:type="uml:Lifeline" href="bug533676a.uml#_s2uuIEcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s26UUUcEEei509ztwo7HDQ" x="454" y="10"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug533676a.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dbItEY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <element xmi:type="uml:Interaction" href="bug533676a.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4dbItUY5Eeiq37bXGi3QbQ"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_4dbItkY5Eeiq37bXGi3QbQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_4dbIt0Y5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_4dbIuEY5Eeiq37bXGi3QbQ" diagramKindId="org.eclipse.papyrus.uml.diagram.sequence">
+ <owner xmi:type="uml:Class" href="bug533676a.uml#_xvHdoEY5Eeiq37bXGi3QbQ"/>
+ </styles>
+ <element xmi:type="uml:Interaction" href="bug533676a.uml#_3_vHIEY5Eeiq37bXGi3QbQ"/>
+ <edges xmi:type="notation:Connector" xmi:id="__mPlgEY5Eeiq37bXGi3QbQ" type="Message_SynchEdge" source="_5d8KgEY5Eeiq37bXGi3QbQ" target="_58sjEEY5Eeiq37bXGi3QbQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="__mQMkEY5Eeiq37bXGi3QbQ" type="Message_SynchNameLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__mQMkUY5Eeiq37bXGi3QbQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__mQzoEY5Eeiq37bXGi3QbQ" type="Message_SynchStereotypeLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__mQzoUY5Eeiq37bXGi3QbQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__mPlgUY5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="__mRasEY5Eeiq37bXGi3QbQ"/>
+ <element xmi:type="uml:Message" href="bug533676a.uml#__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__mPlgkY5Eeiq37bXGi3QbQ" points="[0, 0, -195, 0]$[195, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nYN8EY5Eeiq37bXGi3QbQ" id="(0.5,0.1)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__nYN8UY5Eeiq37bXGi3QbQ" id="(0.5,0.1)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__n2vEEY5Eeiq37bXGi3QbQ" type="Message_ReplyEdge" source="_58sjEEY5Eeiq37bXGi3QbQ" target="_5d8KgEY5Eeiq37bXGi3QbQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="__n2vE0Y5Eeiq37bXGi3QbQ" type="Message_ReplyNameLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#__n054EY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__n2vFEY5Eeiq37bXGi3QbQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__n3WIEY5Eeiq37bXGi3QbQ" type="Message_ReplyStereotypeLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#__n054EY5Eeiq37bXGi3QbQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__n3WIUY5Eeiq37bXGi3QbQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__n2vEUY5Eeiq37bXGi3QbQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="__n3WIkY5Eeiq37bXGi3QbQ"/>
+ <element xmi:type="uml:Message" href="bug533676a.uml#__n054EY5Eeiq37bXGi3QbQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__n2vEkY5Eeiq37bXGi3QbQ" points="[0, 0, 195, 0]$[-195, 0, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__n39MEY5Eeiq37bXGi3QbQ" id="(0.5,0.24285714285714285)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__n39MUY5Eeiq37bXGi3QbQ" id="(0.5,0.24285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_wfAcYEcEEei509ztwo7HDQ" type="Message_AsynchEdge" source="_58sjEEY5Eeiq37bXGi3QbQ" target="_s26UUEcEEei509ztwo7HDQ">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wfAcY0cEEei509ztwo7HDQ" type="Message_AsynchNameLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#_weuvkEcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wfBDcEcEEei509ztwo7HDQ" x="1" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_wfBDcUcEEei509ztwo7HDQ" type="Message_AsynchStereotypeLabel">
+ <element xmi:type="uml:Message" href="bug533676a.uml#_weuvkEcEEei509ztwo7HDQ"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wfBDckcEEei509ztwo7HDQ" x="1" y="-33"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_wfAcYUcEEei509ztwo7HDQ"/>
+ <styles xmi:type="notation:LineStyle" xmi:id="_wfBDc0cEEei509ztwo7HDQ"/>
+ <element xmi:type="uml:Message" href="bug533676a.uml#_weuvkEcEEei509ztwo7HDQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wfAcYkcEEei509ztwo7HDQ" points="[-10, 5, -220, -20]$[210, 25, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wfeWcEcEEei509ztwo7HDQ" id="(0.5,0.15714285714285714)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wfeWcUcEEei509ztwo7HDQ" id="(0.5,0.15714285714285714)"/>
+ </edges>
+</notation:Diagram>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.uml
new file mode 100644
index 00000000000..a7880ecb207
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/resource/bugs/bug533676a.uml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_vdeLIEY5Eeiq37bXGi3QbQ" name="bug533676">
+ <packageImport xmi:type="uml:PackageImport" xmi:id="_voSUAEY5Eeiq37bXGi3QbQ">
+ <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+ </packageImport>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xvHdoEY5Eeiq37bXGi3QbQ" name="Foo">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z1Z0sEY5Eeiq37bXGi3QbQ" name="a" visibility="public"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1ovakEY5Eeiq37bXGi3QbQ" name="b" visibility="public"/>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qdb7gEcEEei509ztwo7HDQ" name="c" visibility="public"/>
+ <ownedBehavior xmi:type="uml:Interaction" xmi:id="_3_vHIEY5Eeiq37bXGi3QbQ" name="doIt">
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_5dwkUEY5Eeiq37bXGi3QbQ" name="a" represents="_z1Z0sEY5Eeiq37bXGi3QbQ" coveredBy="__mCxMEY5Eeiq37bXGi3QbQ __n2IAUY5Eeiq37bXGi3QbQ _AdqRcEcFEei509ztwo7HDQ _AdkK0EcFEei509ztwo7HDQ _Adq4gEcFEei509ztwo7HDQ"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_58nDgEY5Eeiq37bXGi3QbQ" name="b" represents="_1ovakEY5Eeiq37bXGi3QbQ" coveredBy="__mD_UEY5Eeiq37bXGi3QbQ _we02MEcEEei509ztwo7HDQ __n2IAEY5Eeiq37bXGi3QbQ __nrv8EY5Eeiq37bXGi3QbQ"/>
+ <lifeline xmi:type="uml:Lifeline" xmi:id="_s2uuIEcEEei509ztwo7HDQ" name="c" represents="_qdb7gEcEEei509ztwo7HDQ" coveredBy="_we1dQEcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__mCxMEY5Eeiq37bXGi3QbQ" name="request-send" covered="_5dwkUEY5Eeiq37bXGi3QbQ" message="__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__mD_UEY5Eeiq37bXGi3QbQ" name="request-recv" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="__l6OUEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="__nrv8EY5Eeiq37bXGi3QbQ" name="exec1" covered="_58nDgEY5Eeiq37bXGi3QbQ" finish="__n2IAEY5Eeiq37bXGi3QbQ" start="__mD_UEY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_we02MEcEEei509ztwo7HDQ" name="async-send" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="_weuvkEcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_we1dQEcEEei509ztwo7HDQ" name="async-recv" covered="_s2uuIEcEEei509ztwo7HDQ" message="_weuvkEcEEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__n2IAEY5Eeiq37bXGi3QbQ" name="reply-send" covered="_58nDgEY5Eeiq37bXGi3QbQ" message="__n054EY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="__n2IAUY5Eeiq37bXGi3QbQ" name="reply-recv" covered="_5dwkUEY5Eeiq37bXGi3QbQ" message="__n054EY5Eeiq37bXGi3QbQ"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_AdqRcEcFEei509ztwo7HDQ" name="exec2-start" covered="_5dwkUEY5Eeiq37bXGi3QbQ" execution="_AdkK0EcFEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_AdkK0EcFEei509ztwo7HDQ" name="exec2" covered="_5dwkUEY5Eeiq37bXGi3QbQ" finish="_Adq4gEcFEei509ztwo7HDQ" start="_AdqRcEcFEei509ztwo7HDQ"/>
+ <fragment xmi:type="uml:ExecutionOccurrenceSpecification" xmi:id="_Adq4gEcFEei509ztwo7HDQ" name="exec2-finish" covered="_5dwkUEY5Eeiq37bXGi3QbQ" execution="_AdkK0EcFEei509ztwo7HDQ"/>
+ <message xmi:type="uml:Message" xmi:id="__l6OUEY5Eeiq37bXGi3QbQ" name="request" receiveEvent="__mD_UEY5Eeiq37bXGi3QbQ" sendEvent="__mCxMEY5Eeiq37bXGi3QbQ"/>
+ <message xmi:type="uml:Message" xmi:id="__n054EY5Eeiq37bXGi3QbQ" messageSort="reply" receiveEvent="__n2IAUY5Eeiq37bXGi3QbQ" sendEvent="__n2IAEY5Eeiq37bXGi3QbQ"/>
+ <message xmi:type="uml:Message" xmi:id="_weuvkEcEEei509ztwo7HDQ" name="async" messageSort="asynchCall" receiveEvent="_we1dQEcEEei509ztwo7HDQ" sendEvent="_we02MEcEEei509ztwo7HDQ"/>
+ </ownedBehavior>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/CombinedFragmentRegressionTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/CombinedFragmentRegressionTest.java
index cf1add4893b..84ce45bde15 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/CombinedFragmentRegressionTest.java
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.sequence.tests/src/org/eclipse/papyrus/uml/diagram/sequence/tests/bug/CombinedFragmentRegressionTest.java
@@ -13,6 +13,7 @@
package org.eclipse.papyrus.uml.diagram.sequence.tests.bug;
+import static org.eclipse.papyrus.junit.matchers.DiagramMatchers.hasErrorDecorationThat;
import static org.eclipse.papyrus.junit.matchers.MoreMatchers.greaterThan;
import static org.eclipse.papyrus.junit.matchers.MoreMatchers.greaterThanOrEqual;
import static org.eclipse.papyrus.junit.matchers.MoreMatchers.isEmpty;
@@ -28,6 +29,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.CoreMatchers.startsWith;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assume.assumeThat;
@@ -44,6 +46,9 @@ import org.eclipse.draw2d.geometry.Dimension;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.draw2d.geometry.Rectangle;
import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.validation.model.EvaluationMode;
+import org.eclipse.emf.validation.service.IValidationListener;
+import org.eclipse.emf.validation.service.ModelValidationService;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.GraphicalEditPart;
import org.eclipse.gef.Request;
@@ -638,6 +643,51 @@ public class CombinedFragmentRegressionTest extends AbstractPapyrusTest {
});
}
+ /**
+ * Verify the validation of an interaction operand when it is resized.
+ */
+ @Test
+ @PluginResource("resource/bugs/bug533676.di")
+ public void validateResizedInteractionOperand_533676() {
+ GraphicalEditPart operandEP = (GraphicalEditPart) editor.findEditPart("opt", InteractionOperand.class);
+ InteractionOperand operand = (InteractionOperand) operandEP.getAdapter(EObject.class);
+ Interaction interaction = (Interaction) operand.eContainer().eContainer();
+
+ editor.resize(operandEP, sized(100, 185));
+
+ EditPart messageEP = editor.requireEditPart(editor.getActiveDiagram(), interaction.getMessage("async"));
+ assertThat(messageEP, hasErrorDecorationThat(startsWith("Message crosses")));
+
+ EditPart execEP = editor.requireEditPart(editor.getActiveDiagram(), operand.getFragment("exec2"));
+ assertThat(execEP, hasErrorDecorationThat(startsWith("Execution specification crosses")));
+ }
+
+ /**
+ * Verify the validation of an interaction operand when it is created.
+ * Note that <em>what</em> is validated depends on how well the new interaction operand
+ * encloses and adopts interaction fragments. We do not test that here as that is an
+ * orthogonal concern to the fact of running validation.
+ */
+ @Test
+ @PluginResource("resource/bugs/bug533676a.di")
+ public void validateCreatedInteractionOperand_533676() {
+ EditPart interactionEP = editor.findEditPart("doIt", Interaction.class);
+ EditPart interactionCompartment = editor.getShapeCompartment(interactionEP);
+
+ boolean[] validationOccurred = { false };
+ // Lots of live validations occur; we don't want those
+ IValidationListener listener = event -> validationOccurred[0] |= (event.getEvaluationMode() == EvaluationMode.BATCH);
+
+ ModelValidationService.getInstance().addValidationListener(listener);
+ try {
+ editor.createShape(interactionCompartment, UMLElementTypes.CombinedFragment_Shape, at(15, 40), sized(360, 200));
+ } finally {
+ ModelValidationService.getInstance().removeValidationListener(listener);
+ }
+
+ assertThat("No batch validation occurred", validationOccurred[0], is(true));
+ }
+
//
// Test framework
//

Back to the top