Project

General

Profile

« Previous | Next » 

Revision d18e9075

Added by Andreas Müller about 1 year ago

ref #10222 fix NPE for empty featureNode and incorrect feature filter for name facts

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/portal/PortalDtoLoader.java
672 672
            Map<UUID,Set<DescriptionElementBase>> featureMap = loadFeatureMap(taxon);
673 673

  
674 674
            //load final result
675
            if (!filteredRootNode.getChildren().isEmpty()) {
675
            if (filteredRootNode != null && !filteredRootNode.getChildren().isEmpty()) {
676 676
                ContainerDto<FeatureDto> features = new ContainerDto<>();
677 677
                for (TreeNode<Feature,UUID> node : filteredRootNode.getChildren()) {
678 678
                    handleFeatureNode(config, featureMap, features, node);
......
694 694

  
695 695
            //filter, sort and structure according to feature tree
696 696
            TreeNode<Feature, UUID> filteredRootNode;
697
            if (config.getFeatureTree() != null) {
698

  
699
                //TODO class cast
700
                TermTree<Feature> featureTree = repository.getTermTreeService().find(config.getFeatureTree());
701
                filteredRootNode = filterFeatureNode(featureTree.getRoot(), existingFeatureUuids.keySet());
702
            } else {
697
            //DIFFERENT
698
//            if (config.getFeatureTree() != null) {
699
//
700
//                //TODO class cast
701
//                TermTree<Feature> featureTree = repository.getTermTreeService().find(config.getFeatureTree());
702
//                filteredRootNode = filterFeatureNode(featureTree.getRoot(), existingFeatureUuids.keySet());
703
//            } else {
703 704
                filteredRootNode = createDefaultFeatureNode(name);
704
            }
705
//            }  //DIFFERENT END
705 706

  
706 707
            //load facts per feature
707 708
            Map<UUID,Set<DescriptionElementBase>> featureMap = loadFeatureMap(name);
......
850 851
        //if any child is required or this node is required ....
851 852
        if (!requiredChildNodes.isEmpty() ||
852 853
                featureNode.getTerm() != null && existingFeatureUuids.contains(featureNode.getTerm().getUuid())) {
854

  
853 855
            TreeNode<Feature,UUID> result = new TreeNode<>();
854 856
            //add this nodes data
855 857
            Feature feature = featureNode.getTerm() == null ? null : featureNode.getTerm();

Also available in: Unified diff