Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlgoubet2019-09-06 12:40:36 +0000
committerlgoubet2019-09-06 15:16:03 +0000
commit4d4d3b32cba5be0fe9a686ee74d1de818de8be80 (patch)
tree34c16dafe5ba10c55cf90a345b486b09dd7e640e
parent1da5b3a19c2bdd646e7ab710308ab41437c56ba3 (diff)
downloadorg.eclipse.emf.compare-4d4d3b32cba5be0fe9a686ee74d1de818de8be80.tar.gz
org.eclipse.emf.compare-4d4d3b32cba5be0fe9a686ee74d1de818de8be80.tar.xz
org.eclipse.emf.compare-4d4d3b32cba5be0fe9a686ee74d1de818de8be80.zip
Index issue when merging non-unique attributes' elements3.3.8M7
-rw-r--r--plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java
index c7ac57d40..11c53cc4b 100644
--- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java
+++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java
@@ -471,6 +471,13 @@ public class AttributeChangeMerger extends AbstractMerger {
// Then the index, in the target, at which this value needs to be moved
int insertionIndex = DiffUtil.findInsertionIndexForElementAt(comparison, sourceList, copyTarget, lcs,
currentIndexInSource);
+ /*
+ * However, it could still have been located "before" its new index, in which case we need to take it
+ * into account.
+ */
+ if (insertionIndex > currentIndexInTarget) {
+ insertionIndex--;
+ }
if (targetList instanceof EList<?>) {
if (insertionIndex < 0 || insertionIndex >= targetList.size()) {

Back to the top