diff options
author | Camille Letavernier | 2015-01-15 09:13:45 +0000 |
---|---|---|
committer | Camille Letavernier | 2015-01-15 09:13:45 +0000 |
commit | 1d7a3caf4c89e8432f878aaadc3481dd97954f9b (patch) | |
tree | 68d9f69b142af1a1bb11e09100265875a7b3c5ce /extraplugins | |
parent | 103e8a57aa13e06ef179caa96e3aa6ec81877df6 (diff) | |
download | org.eclipse.papyrus-1d7a3caf4c89e8432f878aaadc3481dd97954f9b.tar.gz org.eclipse.papyrus-1d7a3caf4c89e8432f878aaadc3481dd97954f9b.tar.xz org.eclipse.papyrus-1d7a3caf4c89e8432f878aaadc3481dd97954f9b.zip |
457048: [Model Import] Stereotype/Library repair action sometimes
doesn't propose useful suggestions
https://bugs.eclipse.org/bugs/show_bug.cgi?id=457048
- Fix the duplicate resolution: do not remove all versions of a given
duplicate mapping
Diffstat (limited to 'extraplugins')
-rw-r--r-- | extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ui/URIMappingDialog.java | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ui/URIMappingDialog.java b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ui/URIMappingDialog.java index 968175c4949..687c0296aca 100644 --- a/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ui/URIMappingDialog.java +++ b/extraplugins/migration/org.eclipse.papyrus.migration.rsa/src/org/eclipse/papyrus/migration/rsa/transformation/ui/URIMappingDialog.java @@ -197,16 +197,22 @@ public class URIMappingDialog extends SelectionDialog { */
protected void removeDuplicates(List<URIMapping> allMappings) {
List<URIMapping> mappingsCopy = new LinkedList<URIMapping>(allMappings);
+
for (URIMapping mapping : mappingsCopy) {
for (URIMapping m : allMappings) {
if (m == mapping) {
continue;
}
+ // This is a duplicate
if (mapping.getSourceURI().equals(m.getSourceURI())) {
- URIMapping mappingToRemove = findLessSpecificMapping(mapping, m);
- allMappings.remove(mappingToRemove);
- break;
+ // If both mappings are still present, remove one of them
+ if (allMappings.contains(mapping) && allMappings.contains(m)) {
+ URIMapping mappingToRemove = findLessSpecificMapping(mapping, m);
+
+ allMappings.remove(mappingToRemove);
+ break;
+ }
}
}
}
|