ref #9668: hotfix for secundum handling when swap syn and accepted - continue
authorKatja Luther <k.luther@bgbm.org>
Tue, 15 Jun 2021 12:12:20 +0000 (14:12 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 15 Jun 2021 12:12:20 +0000 (14:12 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/SwapSynonymAndAcceptedOperation.java

index 87b5ed73be6ce128bc01b670461b5c69be89c695..1d0b80cd65d7d5c8ffa75e2e8a8f18841cab6e9f 100644 (file)
@@ -10,6 +10,7 @@ package eu.etaxonomy.taxeditor.editor.name.operation;
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
@@ -21,6 +22,7 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.media.ExternalLink;
 import eu.etaxonomy.cdm.model.media.ExternalLinkType;
 import eu.etaxonomy.cdm.model.reference.Reference;
@@ -69,9 +71,17 @@ public class SwapSynonymAndAcceptedOperation extends AbstractPostTaxonOperation
 
                monitor.worked(20);
                UpdateResult result = CdmStore.getService(ITaxonService.class).swapSynonymAndAcceptedTaxon(synonym.getUuid(), element.getUuid(), setNameInSource, false);//TODO
+//             element = (Taxon) result.getCdmEntity();
                element = (Taxon)CdmStore.getService(ITaxonService.class).load(result.getCdmEntity().getUuid());
                Synonym newSyn = null;
                if (!result.getUpdatedObjects().isEmpty()){
+                   Iterator<CdmBase> it = result.getUpdatedObjects().iterator();
+                   while(it.hasNext()){
+                       CdmBase tb = it.next();
+                       if (tb instanceof Synonym){
+                           newSyn = (Synonym)tb;
+                       }
+                   }
                    newSyn = (Synonym)CdmStore.getService(ITaxonService.class).load(result.getUpdatedObjects().iterator().next().getUuid());
                }
                Reference accRef = element.getSec();