diff options
author | lgoubet | 2019-08-28 08:06:56 +0000 |
---|---|---|
committer | lgoubet | 2019-08-28 08:06:56 +0000 |
commit | a9a46d1dca11195b5c899f5787df0e3ed58f4b99 (patch) | |
tree | 3b55d6386756eaff673b0a6381385f80653142cf /plugins | |
parent | d2fcb3b665e8de45a128c17e586f3f936e1e8456 (diff) | |
download | org.eclipse.emf.compare-a9a46d1dca11195b5c899f5787df0e3ed58f4b99.tar.gz org.eclipse.emf.compare-a9a46d1dca11195b5c899f5787df0e3ed58f4b99.tar.xz org.eclipse.emf.compare-a9a46d1dca11195b5c899f5787df0e3ed58f4b99.zip |
Potential out of bounds exception
EList.move cannot be called with an index equal to the list's size.
Change-Id: Ia05a7bff2b6312ab07925bdea78145bc27d72214
Diffstat (limited to 'plugins')
3 files changed, 5 insertions, 5 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 434d17289..6b915f6e7 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 @@ -257,7 +257,7 @@ public class AttributeChangeMerger extends AbstractMerger { } if (targetList instanceof EList<?>) { - if (insertionIndex < 0 || insertionIndex > targetList.size()) { + if (insertionIndex < 0 || insertionIndex >= targetList.size()) { ((EList<Object>)targetList).move(targetList.size() - 1, expectedValue); } else { ((EList<Object>)targetList).move(insertionIndex, expectedValue); diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/FeatureMapChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/FeatureMapChangeMerger.java index c2fc08d62..42b13537c 100644 --- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/FeatureMapChangeMerger.java +++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/FeatureMapChangeMerger.java @@ -517,13 +517,13 @@ public class FeatureMapChangeMerger extends AbstractMerger { } if (currentIndex == -1) { - if (insertionIndex < 0 || insertionIndex > targetList.size()) { + if (insertionIndex < 0 || insertionIndex >= targetList.size()) { ((BasicFeatureMap)(Object)targetList).addUnique(expectedValue); } else { ((BasicFeatureMap)(Object)targetList).addUnique(insertionIndex, expectedValue); } } else { - if (insertionIndex < 0 || insertionIndex > targetList.size()) { + if (insertionIndex < 0 || insertionIndex >= targetList.size()) { ((BasicFeatureMap)(Object)targetList).move(targetList.size() - 1, expectedValue); } else { ((BasicFeatureMap)(Object)targetList).move(insertionIndex, expectedValue); diff --git a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java index d71c2f3cc..4cce909b0 100644 --- a/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java +++ b/plugins/org.eclipse.emf.compare/src/org/eclipse/emf/compare/merge/ReferenceChangeMerger.java @@ -284,14 +284,14 @@ public class ReferenceChangeMerger extends AbstractMerger { targetList.add(insertionIndex, expectedValue); } } else if (targetList instanceof EList<?>) { - if (insertionIndex < 0 || insertionIndex > targetList.size()) { + if (insertionIndex < 0 || insertionIndex >= targetList.size()) { ((EList<EObject>)targetList).move(targetList.size() - 1, expectedValue); } else { ((EList<EObject>)targetList).move(insertionIndex, expectedValue); } } else { targetList.remove(expectedValue); - if (insertionIndex < 0 || insertionIndex > targetList.size()) { + if (insertionIndex < 0 || insertionIndex >= targetList.size()) { targetList.add(expectedValue); } else { targetList.add(insertionIndex, expectedValue); |