diff options
author | lgoubet | 2011-08-09 07:38:14 +0000 |
---|---|---|
committer | lgoubet | 2011-08-09 07:38:14 +0000 |
commit | ba55e157547e2562f96c774913530b31c0ef11c3 (patch) | |
tree | 72805a472c2b7fd3249201b1fad83cb59a712819 | |
parent | d8075d1557c76ee3c2445b6b8e2e43b108ccf426 (diff) | |
download | org.eclipse.emf.compare-mergetests.tar.gz org.eclipse.emf.compare-mergetests.tar.xz org.eclipse.emf.compare-mergetests.zip |
Make the "scope" unit tests pass : we had an NPE with scoped matching.mergetests
-rw-r--r-- | plugins/org.eclipse.emf.compare.diff/src/org/eclipse/emf/compare/diff/engine/check/ReferencesCheck.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/plugins/org.eclipse.emf.compare.diff/src/org/eclipse/emf/compare/diff/engine/check/ReferencesCheck.java b/plugins/org.eclipse.emf.compare.diff/src/org/eclipse/emf/compare/diff/engine/check/ReferencesCheck.java index 1d2ddb046..46e8dc384 100644 --- a/plugins/org.eclipse.emf.compare.diff/src/org/eclipse/emf/compare/diff/engine/check/ReferencesCheck.java +++ b/plugins/org.eclipse.emf.compare.diff/src/org/eclipse/emf/compare/diff/engine/check/ReferencesCheck.java @@ -141,12 +141,13 @@ public class ReferencesCheck extends AbstractCheck { final List<Integer> removedIndices = new ArrayList<Integer>();
// Purge "left" list of all reference values that have been added to it
for (EObject leftValue : new ArrayList<EObject>(leftElementReferences)) {
- if (isUnmatched(leftValue)
+ if (!isInScope(leftValue) || isUnmatched(leftValue)
|| getMatchedEObject(leftValue.eContainer()) != getMatchedEObject(leftValue).eContainer())
leftElementReferences.remove(leftValue);
}
for (EObject rightValue : new ArrayList<EObject>(rightElementReferences)) {
- if (isUnmatched(rightValue)
+ if (!isInScope(rightValue)
+ || isUnmatched(rightValue)
|| getMatchedEObject(rightValue.eContainer()) != getMatchedEObject(rightValue)
.eContainer()) {
removedIndices.add(Integer.valueOf(rightElementReferences.indexOf(rightValue)));
@@ -155,10 +156,10 @@ public class ReferencesCheck extends AbstractCheck { int expectedIndex = 0;
for (int i = 0; i < leftElementReferences.size(); i++) {
final EObject matched = getMatchedEObject(leftElementReferences.get(i));
- for (final Integer removedIndice : new ArrayList<Integer>(removedIndices)) {
- if (i == removedIndice) {
+ for (final Integer removedIndex : new ArrayList<Integer>(removedIndices)) {
+ if (expectedIndex == removedIndex) {
expectedIndex += 1;
- removedIndices.remove(removedIndice);
+ removedIndices.remove(removedIndex);
}
}
if (rightElementReferences.indexOf(matched) != expectedIndex++) {
|