Project

General

Profile

« Previous | Next » 

Revision 79af0b2b

Added by Katja Luther about 5 years ago

fix lazyLoading exception when creating new taxonnode

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
834 834
            result.setError();
835 835
            return result;
836 836
        }
837
//        child = dao.save(child);
837
        child = dao.save(child);
838 838

  
839
        dao.saveOrUpdate(parent);
839
       // dao.saveOrUpdate(parent);
840 840
        result.addUpdatedObject(parent);
841 841
        if (child != null){
842 842
            result.setCdmEntity(child);
......
863 863
                }
864 864
            }
865 865
        }
866
        UUID taxonUUID = taxonService.saveOrUpdate(newTaxonNode.getTaxon());
867
        UUID childUUID = dao.saveOrUpdate(newTaxonNode);
866
        UUID parentUuid = newTaxonNode.getParent().getUuid();
867
        Taxon taxon = newTaxonNode.getTaxon();
868
        taxon.removeTaxonNode(newTaxonNode);
869
        UUID taxonUUID = taxonService.saveOrUpdate(taxon);
870
        taxon = (Taxon) taxonService.load(taxonUUID);
871
        TaxonNode parent = dao.load(parentUuid);
872
        newTaxonNode.setTaxon(taxon);
873
        TaxonNode child = null;
874
        try{
875
            child = parent.addChildNode(newTaxonNode, parent.getReference(), parent.getMicroReference());
868 876

  
869
        TaxonNode parent = dao.load(newTaxonNode.getParent().getUuid());
870
        TaxonNode child = dao.load(childUUID);
871
        result.addUpdatedObject(parent);
877
        }catch(Exception e){
878
            result.addException(e);
879
            result.setError();
880
            return result;
881
        }
882
        dao.saveOrUpdate(child);
883
        //dao.saveOrUpdate(parent);
884
        result.addUpdatedObject(child.getParent());
872 885
        if (child != null){
873 886
            result.setCdmEntity(child);
874 887
        }
875 888
        return result;
876 889

  
890

  
877 891
    }
878 892

  
879 893

  
......
1088 1102
        List<TaxonDistributionDTO> result = new ArrayList<>();
1089 1103
        for(TaxonNode node:nodes){
1090 1104
            if (node.getTaxon() != null){
1091
                TaxonDistributionDTO dto = new TaxonDistributionDTO(node.getTaxon());
1092
                result.add(dto);
1105
                try{
1106
                    TaxonDistributionDTO dto = new TaxonDistributionDTO(node.getTaxon());
1107
                    result.add(dto);
1108
                }catch(Exception e){
1109
                    System.err.println(node.getTaxon().getTitleCache());
1110
                }
1111

  
1093 1112
            }
1094 1113

  
1095 1114
        }

Also available in: Unified diff