Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCamille Letavernier2015-01-15 09:13:45 +0000
committerCamille Letavernier2015-01-15 09:13:45 +0000
commit1d7a3caf4c89e8432f878aaadc3481dd97954f9b (patch)
tree68d9f69b142af1a1bb11e09100265875a7b3c5ce /extraplugins
parent103e8a57aa13e06ef179caa96e3aa6ec81877df6 (diff)
downloadorg.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.java12
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;
+ }
}
}
}

Back to the top