From b1653604b769db922426b527f3734ee17ba25f44 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Thu, 18 Aug 2016 12:16:00 +0200 Subject: [PATCH] Fix multiple key exception for sequence->contigFile and singleRead->pherogram --- .../SequenceContigFileCollectionDetailSection.java | 12 ++++++++++-- .../SingleReadPherogramCollectionDetailSection.java | 10 ++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java index e959b85f9..7c50960d8 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SequenceContigFileCollectionDetailSection.java @@ -13,12 +13,12 @@ import java.util.Collection; import java.util.Collections; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.service.IMediaService; import eu.etaxonomy.cdm.model.media.Media; import eu.etaxonomy.cdm.model.molecular.Sequence; -import eu.etaxonomy.cdm.model.molecular.SingleRead; +import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; -import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; /** @@ -71,6 +71,14 @@ public class SequenceContigFileCollectionDetailSection extends AbstractEntityCol public void addElement(Media element) { if(getEntity().getContigFile()==null){ getEntity().setContigFile(element); + /* + * merge to avoid duplicate key exception + * the exception seems to be caused by the two links to the Media object: + * - Sequence->contigFile (used to be not in the cache after saving) + * - MediaRepresentationPart->media + * Invoking merge() solves this problem + */ + CdmStore.getService(IMediaService.class).merge(element); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java index e78980638..5f887ef26 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/SingleReadPherogramCollectionDetailSection.java @@ -13,8 +13,10 @@ import java.util.Collection; import java.util.Collections; import eu.etaxonomy.cdm.api.conversation.ConversationHolder; +import eu.etaxonomy.cdm.api.service.IMediaService; import eu.etaxonomy.cdm.model.media.Media; import eu.etaxonomy.cdm.model.molecular.SingleRead; +import eu.etaxonomy.taxeditor.store.CdmStore; import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory; import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement; import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection; @@ -69,6 +71,14 @@ public class SingleReadPherogramCollectionDetailSection extends AbstractEntityCo public void addElement(Media element) { if(getEntity().getPherogram()==null){ getEntity().setPherogram(element); + /* + * merge to avoid duplicate key exception + * the exception seems to be caused by the two links to the Media object: + * - SingleRead->pherogram (used to be not in the cache after saving) + * - MediaRepresentationPart->media + * Invoking merge() solves this problem + */ + CdmStore.getService(IMediaService.class).merge(element); } } -- 2.34.1