move taxonnode needs to save old parent and child node
authorKatja Luther <k.luther@bgbm.org>
Mon, 24 Oct 2016 08:33:09 +0000 (10:33 +0200)
committerKatja Luther <k.luther@bgbm.org>
Mon, 24 Oct 2016 08:33:09 +0000 (10:33 +0200)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java

index 20c57a6e6ed5d7bcd91ba0ebddfc9c2840603fe6..4c4cc3542cc73b52ae58c61a553a8ee9c82eb843 100644 (file)
@@ -589,7 +589,7 @@ public class TaxonNodeServiceImpl extends AnnotatableServiceBase<TaxonNode, ITax
         UpdateResult result = new UpdateResult();
 
         TaxonNode parentParent = HibernateProxyHelper.deproxy(newParent.getParent(), TaxonNode.class);
-
+        TaxonNode oldParent = HibernateProxyHelper.deproxy(taxonNode.getParent(), TaxonNode.class);
         Integer sortIndex = -1;
         if (movingType == 0){
             sortIndex = 0;
@@ -607,9 +607,10 @@ public class TaxonNodeServiceImpl extends AnnotatableServiceBase<TaxonNode, ITax
         result.addUpdatedObject(taxonNode.getParent());
         result.setCdmEntity(taxonNode);
 
-        newParent.addChildNode(taxonNode, sortIndex, taxonNode.getReference(),  taxonNode.getMicroReference());
+        taxonNode = newParent.addChildNode(taxonNode, sortIndex, taxonNode.getReference(),  taxonNode.getMicroReference());
 
-        dao.saveOrUpdate(newParent);
+        dao.saveOrUpdate(taxonNode);
+        dao.saveOrUpdate(oldParent);
 
         return result;
     }