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