From 583c8fcfab2052343657ca3e2495707419092ec2 Mon Sep 17 00:00:00 2001 From: "n.hoffmann" Date: Mon, 14 Feb 2011 16:54:33 +0000 Subject: [PATCH] Fixes #2233 --- .../api/service/DescriptionServiceImpl.java | 37 +++++++++++++------ .../service/DescriptionServiceImplTest.java | 2 +- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java index 86745f8424..9903bbf321 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImpl.java @@ -457,20 +457,35 @@ public class DescriptionServiceImpl extends IdentifiableServiceBase descriptionElements, DescriptionBase targetDescription, boolean isCopy) { - Iterator iterator = descriptionElements.iterator(); - while (iterator.hasNext()){ - DescriptionElementBase elementToRemove = iterator.next(); + + for (DescriptionElementBase element : descriptionElements){ + DescriptionBase description = element.getInDescription(); + try { + DescriptionElementBase newElement = (DescriptionElementBase)element.clone(); + targetDescription.addElement(newElement); + } catch (CloneNotSupportedException e) { + new RuntimeException ("Clone not yet implemented for class " + element.getClass().getName(), e); + } if (! isCopy){ - iterator.remove(); - }else{ - try { - elementToRemove = (DescriptionElementBase)elementToRemove.clone(); - } catch (CloneNotSupportedException e) { - new RuntimeException ("Clone not yet implemented for class " + elementToRemove.getClass().getName(), e); - } + description.removeElement(element); +// iterator.remove(); } - targetDescription.addElement(elementToRemove); + } +// Iterator iterator = descriptionElements.iterator(); +// while (iterator.hasNext()){ +// DescriptionElementBase elementToRemove = iterator.next(); +// try { +// elementToRemove = (DescriptionElementBase)elementToRemove.clone(); +// } catch (CloneNotSupportedException e) { +// new RuntimeException ("Clone not yet implemented for class " + elementToRemove.getClass().getName(), e); +// } +// +// targetDescription.addElement(elementToRemove); +// if (! isCopy){ +// iterator.remove(); +// } +// } } } diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java index 604019be3d..73faeb2f9b 100644 --- a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java +++ b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java @@ -156,6 +156,6 @@ public class DescriptionServiceImplTest extends CdmIntegrationTest { this.service.save(targetDescription); this.service.save(sourceDescription); - + } } -- 2.34.1