Added null checks for comparator
authorAlexander Oppermann <a.oppermann@bgbm.org>
Fri, 19 Sep 2014 09:11:55 +0000 (09:11 +0000)
committerAlexander Oppermann <a.oppermann@bgbm.org>
Fri, 19 Sep 2014 09:11:55 +0000 (09:11 +0000)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonNodeByNameComparator.java

index 695fb0a702da01a054fd760cdab3caff9779c7f9..f108931cff4d79ac6ceed516676c04fd3e486a42 100644 (file)
@@ -104,19 +104,22 @@ public class TaxonNodeByNameComparator extends AbstractStringComparator<TaxonNod
             if (name instanceof NonViralName){\r
                 if (logger.isTraceEnabled()){logger.trace(name + " isNonViralName");}\r
                 NonViralName<?> nonViralName = (NonViralName<?>)name;\r
-                if (name.isInfraSpecific()){\r
-                    if (logger.isTraceEnabled()){logger.trace(name + " isInfraSpecific");}\r
-                    if (nonViralName.getSpecificEpithet().equals(nonViralName.getInfraSpecificEpithet())){\r
-                        titleCache = nonViralName.getNameCache() + " "+nonViralName.getAuthorshipCache();\r
-                    }\r
-                }\r
-                if (name.isInfraGeneric()){\r
-                    if (logger.isTraceEnabled()){logger.trace(name + " isInfraGeneric");}\r
-                    titleCache = nonViralName.getGenusOrUninomial() + " " + nonViralName.getInfraGenericEpithet();\r
-                }\r
-                if (nonViralName.isSpeciesAggregate()){\r
-                    if (logger.isTraceEnabled()){logger.trace(name + " isSpeciesAggregate");}\r
-                    titleCache = nonViralName.getGenusOrUninomial() + " " + nonViralName.getSpecificEpithet();\r
+                if (nonViralName.getGenusOrUninomial() != null){\r
+                       if (name.isInfraSpecific() && nonViralName.getSpecificEpithet() != null \r
+                                       && nonViralName.getInfraSpecificEpithet() != null){\r
+                               if (logger.isTraceEnabled()){logger.trace(name + " isInfraSpecific");}\r
+                               if (nonViralName.getSpecificEpithet().equals(nonViralName.getInfraSpecificEpithet())){\r
+                                       titleCache = nonViralName.getNameCache() + " "+nonViralName.getAuthorshipCache();\r
+                               }\r
+                       }\r
+                       if (name.isInfraGeneric() && nonViralName.getInfraGenericEpithet() != null){\r
+                               if (logger.isTraceEnabled()){logger.trace(name + " isInfraGeneric");}\r
+                               titleCache = nonViralName.getGenusOrUninomial() + " " + nonViralName.getInfraGenericEpithet();\r
+                       }\r
+                       if (nonViralName.isSpeciesAggregate() && nonViralName.getSpecificEpithet() != null){\r
+                               if (logger.isTraceEnabled()){logger.trace(name + " isSpeciesAggregate");}\r
+                               titleCache = nonViralName.getGenusOrUninomial() + " " + nonViralName.getSpecificEpithet();\r
+                       }\r
                 }\r
 \r
             }\r