[570518] Add missing bendpoints in NoteAttachment

Adds the missing bendpoint reported in the bug related. The algorithm
was incomplete and it added only one point when two were needed.

Bug: 570518
Change-Id: I14eafea22e3101309945b2e43bea3951fd59a3c7
Signed-off-by: Glenn Plouhinec <glenn.plouhinec@obeo.fr>
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/SetConnectionBendpointsAccordingToExtremityMoveCommmand.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/SetConnectionBendpointsAccordingToExtremityMoveCommmand.java
index 5142ab0..a40da0d 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/SetConnectionBendpointsAccordingToExtremityMoveCommmand.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/SetConnectionBendpointsAccordingToExtremityMoveCommmand.java
@@ -359,6 +359,7 @@
                         newLine.addPoint((source.getLeft().x + target.getRight().x) / 2, lastRemovedFromSource.y);
                     }
                 }
+                 newLine.addPoint(end);
             }
         } else {
             // Add necessary point to complete the first (or last) segment if
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.aird b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.aird
new file mode 100644
index 0000000..e9088ad
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.aird
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style">
+  <viewpoint:DAnalysis uid="_xTiJkFo3EeuqXtYsuyu_5A" selectedViews="_L0V94Fp8EeuUPfIN0A-W1A" version="14.3.1.202003261200">
+    <semanticResources>bugzilla_570518.ecore</semanticResources>
+    <ownedViews xmi:type="viewpoint:DView" uid="_RzU1sFo4EeuqXtYsuyu_5A">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_R4j7AFo4EeuqXtYsuyu_5A" name=" package entities" repPath="#_R4d0YFo4EeuqXtYsuyu_5A" changeId="b2a8f14c-77be-4f42-920c-80bf74fb5892">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="bugzilla_570518.ecore#/"/>
+      </ownedRepresentationDescriptors>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" uid="_6X868Fo4EeuqXtYsuyu_5A">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/resource/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+    </ownedViews>
+    <ownedViews xmi:type="viewpoint:DView" uid="_L0V94Fp8EeuUPfIN0A-W1A">
+      <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
+      <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_Mh6OgVp8EeuUPfIN0A-W1A" name=" package entities" repPath="#_Mh5AYFp8EeuUPfIN0A-W1A" changeId="64ed6ff7-c5ff-41b3-93fa-e2f6423e3e7d">
+        <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+        <target xmi:type="ecore:EPackage" href="bugzilla_570518.ecore#/"/>
+      </ownedRepresentationDescriptors>
+    </ownedViews>
+  </viewpoint:DAnalysis>
+  <diagram:DSemanticDiagram uid="_R4d0YFo4EeuqXtYsuyu_5A">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_R4uTEFo4EeuqXtYsuyu_5A" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_R4u6IFo4EeuqXtYsuyu_5A" type="Sirius" element="_R4d0YFo4EeuqXtYsuyu_5A" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_VvXNcFo4EeuqXtYsuyu_5A" type="2003" element="_VtqkUFo4EeuqXtYsuyu_5A">
+          <children xmi:type="notation:Node" xmi:id="_Vvbe4Fo4EeuqXtYsuyu_5A" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_VvdUEFo4EeuqXtYsuyu_5A" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_VvdUEVo4EeuqXtYsuyu_5A"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_VvdUElo4EeuqXtYsuyu_5A"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_VvXNcVo4EeuqXtYsuyu_5A" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VvXNclo4EeuqXtYsuyu_5A" x="285" y="70" width="153" height="88"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_XsdzUFo4EeuqXtYsuyu_5A" type="2003" element="_Xrs-UFo4EeuqXtYsuyu_5A">
+          <children xmi:type="notation:Node" xmi:id="_XseaYFo4EeuqXtYsuyu_5A" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_XseaYVo4EeuqXtYsuyu_5A" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_XseaYlo4EeuqXtYsuyu_5A"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_XseaY1o4EeuqXtYsuyu_5A"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_XsdzUVo4EeuqXtYsuyu_5A" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XsdzUlo4EeuqXtYsuyu_5A" x="285" y="390" width="153" height="98"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_R4u6IVo4EeuqXtYsuyu_5A"/>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_R7sHgFo4EeuqXtYsuyu_5A" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_R7sHgVo4EeuqXtYsuyu_5A"/>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_VtqkUFo4EeuqXtYsuyu_5A" name="NewEClass1" tooltipText=".NewEClass1">
+      <target xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassA"/>
+      <semanticElements xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassA"/>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Vt9fQFo4EeuqXtYsuyu_5A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="GradientTopToBottom">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_Xrs-UFo4EeuqXtYsuyu_5A" name="NewEClass1" tooltipText=".NewEClass1">
+      <target xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassB"/>
+      <semanticElements xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassB"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XrtlYFo4EeuqXtYsuyu_5A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="GradientTopToBottom">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_R4ebcFo4EeuqXtYsuyu_5A"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/resource/test-ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <target xmi:type="ecore:EPackage" href="bugzilla_570518.ecore#/"/>
+  </diagram:DSemanticDiagram>
+  <diagram:DSemanticDiagram uid="_Mh5AYFp8EeuUPfIN0A-W1A">
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Mh6Oglp8EeuUPfIN0A-W1A" source="GMF_DIAGRAMS">
+      <data xmi:type="notation:Diagram" xmi:id="_Mh6Og1p8EeuUPfIN0A-W1A" type="Sirius" element="_Mh5AYFp8EeuUPfIN0A-W1A" measurementUnit="Pixel">
+        <children xmi:type="notation:Node" xmi:id="_MkWegFp8EeuUPfIN0A-W1A" type="2003" element="_MjTVoFp8EeuUPfIN0A-W1A">
+          <children xmi:type="notation:Node" xmi:id="_MkYTsFp8EeuUPfIN0A-W1A" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_MkY6wFp8EeuUPfIN0A-W1A" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_MkY6wVp8EeuUPfIN0A-W1A"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_MkY6wlp8EeuUPfIN0A-W1A"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_MkWegVp8EeuUPfIN0A-W1A" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MkWeglp8EeuUPfIN0A-W1A" x="70" y="75" width="128" height="78"/>
+        </children>
+        <children xmi:type="notation:Node" xmi:id="_MkY6w1p8EeuUPfIN0A-W1A" type="2003" element="_MjdGoVp8EeuUPfIN0A-W1A">
+          <children xmi:type="notation:Node" xmi:id="_MkZh0lp8EeuUPfIN0A-W1A" type="5007"/>
+          <children xmi:type="notation:Node" xmi:id="_MkaI4Fp8EeuUPfIN0A-W1A" type="7004">
+            <styles xmi:type="notation:SortingStyle" xmi:id="_MkaI4Vp8EeuUPfIN0A-W1A"/>
+            <styles xmi:type="notation:FilteringStyle" xmi:id="_MkaI4lp8EeuUPfIN0A-W1A"/>
+          </children>
+          <styles xmi:type="notation:ShapeStyle" xmi:id="_MkZh0Fp8EeuUPfIN0A-W1A" fontName="Segoe UI" fontHeight="8"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MkZh0Vp8EeuUPfIN0A-W1A" x="70" y="375" width="128" height="78"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_3ed0cFp8EeuUPfIN0A-W1A" type="Note" fontName="Segoe UI" description="Text" fillColor="13369343" transparency="0" lineColor="6737151" lineWidth="1">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3eebgFp8EeuUPfIN0A-W1A" source="specificStyles"/>
+          <children xmi:type="notation:BasicDecorationNode" xmi:id="_3eebhFp8EeuUPfIN0A-W1A" type="DiagramName">
+            <element xsi:nil="true"/>
+          </children>
+          <children xmi:type="notation:BasicDecorationNode" xmi:id="_3efCkFp8EeuUPfIN0A-W1A" type="Description">
+            <element xsi:nil="true"/>
+          </children>
+          <styles xmi:type="notation:TextStyle" xmi:id="_3eebgVp8EeuUPfIN0A-W1A" textAlignment="Center"/>
+          <styles xmi:type="notation:LineTypeStyle" xmi:id="_3eebglp8EeuUPfIN0A-W1A"/>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3eebg1p8EeuUPfIN0A-W1A" x="525" y="255"/>
+        </children>
+        <styles xmi:type="notation:DiagramStyle" xmi:id="_Mh6OhFp8EeuUPfIN0A-W1A"/>
+        <edges xmi:type="notation:Edge" xmi:id="_MkaI41p8EeuUPfIN0A-W1A" type="4001" element="_Mj5LgFp8EeuUPfIN0A-W1A" source="_MkWegFp8EeuUPfIN0A-W1A" target="_MkY6w1p8EeuUPfIN0A-W1A">
+          <children xmi:type="notation:Node" xmi:id="_MkaI51p8EeuUPfIN0A-W1A" type="6001">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MkaI6Fp8EeuUPfIN0A-W1A" x="-33" y="2"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_MkaI6Vp8EeuUPfIN0A-W1A" type="6002">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MkaI6lp8EeuUPfIN0A-W1A" x="6" y="2"/>
+          </children>
+          <children xmi:type="notation:Node" xmi:id="_Mkav8Fp8EeuUPfIN0A-W1A" type="6003">
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mkav8Vp8EeuUPfIN0A-W1A" x="-20"/>
+          </children>
+          <styles xmi:type="notation:ConnectorStyle" xmi:id="_MkaI5Fp8EeuUPfIN0A-W1A" routing="Rectilinear"/>
+          <styles xmi:type="notation:FontStyle" xmi:id="_MkaI5Vp8EeuUPfIN0A-W1A" fontName="Segoe UI" fontHeight="8"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MkaI5lp8EeuUPfIN0A-W1A" points="[2, 76, 3, -263]$[2, 300, 3, -39]"/>
+          <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mkav8lp8EeuUPfIN0A-W1A" id="(0.2222222222222222,0.0)"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Mkav81p8EeuUPfIN0A-W1A" id="(0.21428571428571427,0.5131578947368421)"/>
+        </edges>
+        <edges xmi:type="notation:Connector" xmi:id="_BcMo4Fp9EeuUPfIN0A-W1A" type="NoteAttachment" source="_3ed0cFp8EeuUPfIN0A-W1A" target="_MkaI41p8EeuUPfIN0A-W1A" routing="Rectilinear" lineWidth="1">
+          <styles xmi:type="notation:ArrowStyle" xmi:id="_BcMo4Vp9EeuUPfIN0A-W1A"/>
+          <styles xmi:type="notation:LineTypeStyle" xmi:id="_BcMo4lp9EeuUPfIN0A-W1A"/>
+          <element xsi:nil="true"/>
+          <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BcMo41p9EeuUPfIN0A-W1A" points="[-30, -28, 445, 1]$[-30, -108, 445, -79]$[-443, -108, 32, -79]$[-443, -43, 32, -14]$[-475, -43, 0, -14]"/>
+          <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BcOeEFp9EeuUPfIN0A-W1A" id="(0.5,0.4588235294117647)"/>
+        </edges>
+      </data>
+    </ownedAnnotationEntries>
+    <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_MkUpUFp8EeuUPfIN0A-W1A" source="DANNOTATION_CUSTOMIZATION_KEY">
+      <data xmi:type="diagram:ComputedStyleDescriptionRegistry" uid="_MkVQYFp8EeuUPfIN0A-W1A"/>
+    </ownedAnnotationEntries>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_MjTVoFp8EeuUPfIN0A-W1A" name="ClassA" tooltipText=".ClassA" outgoingEdges="_Mj5LgFp8EeuUPfIN0A-W1A">
+      <target xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassA"/>
+      <semanticElements xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassA"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_MjcfkFp8EeuUPfIN0A-W1A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="GradientTopToBottom">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_MjdGoVp8EeuUPfIN0A-W1A" name="ClassB" tooltipText=".ClassB" incomingEdges="_Mj5LgFp8EeuUPfIN0A-W1A">
+      <target xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassB"/>
+      <semanticElements xmi:type="ecore:EClass" href="bugzilla_570518.ecore#//ClassB"/>
+      <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
+      <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
+      <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
+      <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_MjdGolp8EeuUPfIN0A-W1A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="GradientTopToBottom">
+        <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
+    </ownedDiagramElements>
+    <ownedDiagramElements xmi:type="diagram:DEdge" uid="_Mj5LgFp8EeuUPfIN0A-W1A" name="[0..1] Ref1" sourceNode="_MjTVoFp8EeuUPfIN0A-W1A" targetNode="_MjdGoVp8EeuUPfIN0A-W1A">
+      <target xmi:type="ecore:EReference" href="bugzilla_570518.ecore#//ClassA/Ref1"/>
+      <semanticElements xmi:type="ecore:EReference" href="bugzilla_570518.ecore#//ClassA/Ref1"/>
+      <ownedStyle xmi:type="diagram:EdgeStyle" uid="_MkGm4Fp8EeuUPfIN0A-W1A" routingStyle="manhattan">
+        <customFeatures>routingStyle</customFeatures>
+        <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
+        <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_MkGm4Vp8EeuUPfIN0A-W1A" showIcon="false"/>
+      </ownedStyle>
+      <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
+    </ownedDiagramElements>
+    <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
+    <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_Mh5AYVp8EeuUPfIN0A-W1A"/>
+    <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
+    <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.sirius.sample.ecore.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
+    <target xmi:type="ecore:EPackage" href="bugzilla_570518.ecore#/"/>
+  </diagram:DSemanticDiagram>
+</xmi:XMI>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.ecore b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.ecore
new file mode 100644
index 0000000..f1393d2
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/data/unit/noteAttachments/bugzilla_570518/bugzilla_570518.ecore
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="">
+  <eClassifiers xsi:type="ecore:EClass" name="ClassA">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="Ref1" eType="#//ClassB"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ClassB"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/RectilinearNoteAttachmentTest.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/RectilinearNoteAttachmentTest.java
new file mode 100644
index 0000000..87182a3
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/RectilinearNoteAttachmentTest.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2021 THALES GLOBAL SERVICES.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ *    Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.swtbot;
+
+import java.util.List;
+
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.draw2d.geometry.PointList;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.ConnectionEditPart;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.RelativeBendpoints;
+import org.eclipse.sirius.diagram.DDiagram;
+import org.eclipse.sirius.diagram.ui.internal.edit.parts.SiriusNoteEditPart;
+import org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase;
+import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
+import org.eclipse.sirius.tests.swtbot.support.api.condition.BendpointMovedCondition;
+import org.eclipse.sirius.tests.swtbot.support.api.editor.SWTBotSiriusDiagramEditor;
+import org.eclipse.sirius.tests.swtbot.support.utils.SWTBotUtils;
+import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditPart;
+
+/**
+ * Ensures that NoteAttachment with Rectilinear style works correctly.
+ * 
+ * @author <a href="mailto:glenn.plouhinec@obeo.fr">Glenn Plouhinec</a>
+ *
+ */
+public class RectilinearNoteAttachmentTest extends AbstractSiriusSwtBotGefTestCase {
+
+    private static final String MODEL_FILE = "bugzilla_570518.ecore";
+
+    private static final String SESSION_FILE = "bugzilla_570518.aird";
+
+    private static final String DATA_UNIT_DIR = "data/unit/noteAttachments/bugzilla_570518/";
+
+    @Override
+    protected void onSetUpBeforeClosingWelcomePage() throws Exception {
+        copyFileToTestProject(Activator.PLUGIN_ID, DATA_UNIT_DIR, MODEL_FILE, SESSION_FILE);
+        sessionAirdResource = new UIResource(designerProject, SESSION_FILE);
+        localSession = designerPerspective.openSessionFromFile(sessionAirdResource, true);
+        editor = (SWTBotSiriusDiagramEditor) openRepresentation(localSession.getOpenedSession(), "Entities", " package entities", DDiagram.class);
+    }
+
+    /**
+     * Checks in this particular scenario that the bendpoints of the NoteAttachment remain consistent and that there is
+     * not just one bendpoint left.
+     * 
+     * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=570518"
+     */
+    @SuppressWarnings("rawtypes")
+    public void testConsistentNumberBendpoints() {
+        SWTBotGefEditPart note = editor.getEditPart("Text", SiriusNoteEditPart.class);
+        editor.select(note);
+        final Point pointToDrag = editor.getAbsoluteCenter((GraphicalEditPart) note.part());
+        final Point endpoint = new Point(80, 155);
+
+        SiriusNoteEditPart noteEP = (SiriusNoteEditPart) note.part();
+        ConnectionEditPart attachmentEP = (ConnectionEditPart) noteEP.getSourceConnections().get(0);
+        PointList points = attachmentEP.getConnectionFigure().getPoints();
+        List bendpoints = ((RelativeBendpoints) ((Edge) attachmentEP.getModel()).getBendpoints()).getPoints();
+
+        assertTrue("There must be 5 points.", points.size() == 5);
+        assertTrue("There must be 5 bendpoints.", bendpoints.size() == 5);
+
+        editor.drag(pointToDrag.x, pointToDrag.y, endpoint.x, endpoint.y);
+        SWTBotUtils.waitAllUiEvents();
+        bot.waitUntil(new BendpointMovedCondition(attachmentEP, points.getPoint(0)).checkFirstBendpoint());
+
+        points = attachmentEP.getConnectionFigure().getPoints();
+        bendpoints = ((RelativeBendpoints) ((Edge) attachmentEP.getModel()).getBendpoints()).getPoints();
+
+        assertTrue("There must be 5 points.", points.size() == 4);
+        assertTrue("There must be 5 bendpoints.", bendpoints.size() == 4);
+
+    }
+}