Project

General

Profile

« Previous | Next » 

Revision c0878f62

Added by Katja Luther almost 8 years ago

fix NPE of Caryophyllales output test

View differences:

cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java
147 147
        rootNode = getTaxonNodeService().load(rootNode.getUuid(), propertyPaths);
148 148
        Set<UUID> childrenUuids = new HashSet<UUID>();
149 149

  
150

  
151
        rootNode = HibernateProxyHelper.deproxy(rootNode, TaxonNode.class);
152
        rootNode.removeNullValueFromChildren();
150 153
        for (TaxonNode child: rootNode.getChildNodes()){
151 154
            child = HibernateProxyHelper.deproxy(child, TaxonNode.class);
152 155
            childrenUuids.add(child.getUuid());
......
165 168

  
166 169
        childrenNodes = getTaxonNodeService().find(childrenUuids);
167 170
        for(TaxonNode genusNode : childrenNodes)   {
168

  
169
            nameRecords.add(createNewRecord(genusNode, state));
170

  
171
            if (!genusNode.isTopmostNode()){
172
                nameRecords.add(createNewRecord(genusNode, state));
173
            }
171 174
            refreshTransaction();
172 175

  
173 176
        }
......
188 191
        parentsNodesUUID =new HashSet<UUID>();
189 192
        for (TaxonNode familyNode: familyNodes){
190 193
            familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class);
194
            familyNode.removeNullValueFromChildren();
191 195
            for (TaxonNode child: familyNode.getChildNodes()){
192 196
                child = HibernateProxyHelper.deproxy(child, TaxonNode.class);
193 197
                name = HibernateProxyHelper.deproxy(child.getTaxon().getName(), TaxonNameBase.class);
194
                if (child.getTaxon().getName().getRank().isLower(Rank.GENUS())) {
198
                if (name.isGenus()) {
195 199
                    childrenUuids.add(child.getUuid());
196 200
                    if (child.hasChildNodes()){
197 201
                        parentsNodesUUID.add(child.getUuid());
198 202
                    }
199
                }else{
200
                    parentsNodesUUID.add(child.getUuid());
201 203
                }
202 204
            }
203 205
            //refreshTransaction();
......
265 267

  
266 268
    private TaxonNode getHigherNode(TaxonNode node, Rank rank){
267 269

  
270
        node = HibernateProxyHelper.deproxy(node, TaxonNode.class);
271
        TaxonNameBase name = HibernateProxyHelper.deproxy( node.getTaxon().getName(), TaxonNameBase.class);
268 272
        Rank nodeRank = node.getTaxon().getName().getRank();
269
        if (nodeRank.isKindOf(rank)){
273
        if (nodeRank.equals(rank)){
270 274
            return node;
271 275

  
272 276
        }else if (nodeRank.isHigher(rank)){
......
323 327
                descriptionsString.append(distribution.getArea().getIdInVocabulary());
324 328

  
325 329
            }
326
            nameRecord.put(columnName, descriptionsString.toString());
330

  
327 331
        }
332
        nameRecord.put(columnName, descriptionsString.toString());
328 333

  
329 334
    }
330 335

  
......
352 357
        HashMap<String, String> nameRecord = new HashMap<String,String>();
353 358
        nameRecord.put("classification", childNode.getClassification().getTitleCache());
354 359
        TaxonNode familyNode = getHigherNode(childNode, Rank.FAMILY());
355
        familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class);
356
        familyNode.getTaxon().setProtectedTitleCache(true);
357
        nameRecord.put("familyTaxon", familyNode.getTaxon().getTitleCache());
360
        Taxon taxon;
361
        BotanicalName name;
362
        if (familyNode != null){
363
            familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class);
364
            familyNode.getTaxon().setProtectedTitleCache(true);
358 365

  
366
            nameRecord.put("familyTaxon", familyNode.getTaxon().getTitleCache());
359 367

  
360 368

  
361 369

  
362
        Taxon taxon = (Taxon)getTaxonService().load(familyNode.getTaxon().getUuid());
363
        taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class);
364
        //if publish flag is set
365 370

  
366
        //  if (taxon.isPublish()){
367
        BotanicalName name = HibernateProxyHelper.deproxy(taxon.getName(), BotanicalName.class);
368
        nameRecord.put("familyName", name.getNameCache());
369
        extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsFam", state);
371
            taxon = (Taxon)getTaxonService().load(familyNode.getTaxon().getUuid());
372
            taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class);
373
            //if publish flag is set
370 374

  
375
            //  if (taxon.isPublish()){
376
            name = HibernateProxyHelper.deproxy(taxon.getName(), BotanicalName.class);
377
            nameRecord.put("familyName", name.getNameCache());
378
            extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsFam", state);
379
        } else{
380
            nameRecord.put("familyTaxon", null);
381
            nameRecord.put("familyName", null);
382
            nameRecord.put("descriptionsFam", null);
383
        }
371 384
        TaxonNode genusNode = getHigherNode(childNode, Rank.GENUS());
372 385
        if (genusNode!= null){
373 386
            genusNode = HibernateProxyHelper.deproxy(genusNode, TaxonNode.class);
......
385 398
            }else{
386 399
                nameRecord.put("genusName", name.getGenusOrUninomial());
387 400
            }
388
            extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsGen", state);
401
            extractDescriptions(nameRecord, taxon, getNotesFeature(state), "descriptionsGen", state);
389 402
        }
390 403
        taxon = (Taxon) getTaxonService().load(childNode.getTaxon().getUuid());
391 404
        taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class);

Also available in: Unified diff