diff options
author | lgoubet | 2019-09-06 12:40:36 +0000 |
---|---|---|
committer | lgoubet | 2019-09-06 15:16:03 +0000 |
commit | 4d4d3b32cba5be0fe9a686ee74d1de818de8be80 (patch) | |
tree | 34c16dafe5ba10c55cf90a345b486b09dd7e640e | |
parent | 1da5b3a19c2bdd646e7ab710308ab41437c56ba3 (diff) | |
download | org.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
Change-Id: Ic05460d8df2adf2b95d376d651eb03061b50cdad
-rw-r--r-- | plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/AttributeChangeMerger.java | 7 |
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()) { |