Skip to content
Snippets Groups Projects
Commit 82c56d78 authored by dgelessus's avatar dgelessus
Browse files

Apply upstream fixes to MyReferenceChangeMerger

parent a99a5cc8
No related branches found
No related tags found
No related merge requests found
......@@ -283,14 +283,14 @@ public class MyReferenceChangeMerger 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);
......@@ -410,7 +410,7 @@ public class MyReferenceChangeMerger extends AbstractMerger {
expectedValue = diff.getValue();
}
} else if (rightToLeft) {
if (reference.isContainment() || valueMatch.getLeft() == null) {
if (valueMatch.getLeft() == null) {
expectedValue = createCopy(diff.getValue());
valueMatch.setLeft(expectedValue);
needXmiId = true;
......@@ -418,7 +418,7 @@ public class MyReferenceChangeMerger extends AbstractMerger {
expectedValue = valueMatch.getLeft();
}
} else {
if (reference.isContainment() || valueMatch.getRight() == null) {
if (valueMatch.getRight() == null) {
expectedValue = createCopy(diff.getValue());
valueMatch.setRight(expectedValue);
needXmiId = true;
......@@ -440,7 +440,7 @@ public class MyReferenceChangeMerger extends AbstractMerger {
if (needXmiId) {
// Copy XMI ID when applicable.
final Resource initialResource = diff.getValue().eResource();
final Resource targetResource = expectedValue.eResource();
final Resource targetResource = expectedContainer.eResource();
if (initialResource instanceof XMIResource && targetResource instanceof XMIResource) {
((XMIResource)targetResource).setID(expectedValue,
((XMIResource)initialResource).getID(diff.getValue()));
......@@ -496,7 +496,6 @@ public class MyReferenceChangeMerger extends AbstractMerger {
}
final EObject expectedValue;
if (valueMatch == null) {
// value is out of the scope... we need to look it up
if (reference.isMany()) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment