fix #8395 avoiding NPE in NameCatalogueController.getDatasetIdName()
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / controller / dto / NameCatalogueController.java
index c591995294cf02ce5242014584cfd84d41598303..d64712267155bf9f146d3de83ffcd8681c60f64b 100644 (file)
@@ -1309,19 +1309,21 @@ public class NameCatalogueController extends AbstractController<TaxonName, IName
         while(sourcesItr.hasNext()) {
             IdentifiableSource source = sourcesItr.next();
             Reference ref = source.getCitation();
-            Set<IdentifiableSource> ref_sources = ref.getSources();
-            Iterator<IdentifiableSource> ref_itr = ref_sources.iterator();
-            while(ref_itr.hasNext()) {
-                IdentifiableSource ref_source = ref_itr.next();
-                if(ref_source.getIdNamespace().equals(DWC_DATASET_ID)) {
-                    didname[0] = ref_source.getIdInSource();
+            if(ref != null){
+                Set<IdentifiableSource> ref_sources = ref.getSources();
+                Iterator<IdentifiableSource> ref_itr = ref_sources.iterator();
+                while(ref_itr.hasNext()) {
+                    IdentifiableSource ref_source = ref_itr.next();
+                    if(ref_source.getIdNamespace().equals(DWC_DATASET_ID)) {
+                        didname[0] = ref_source.getIdInSource();
+                        break;
+                    }
+                }
+                if(!didname[0].isEmpty()) {
+                    didname[1] = ref.getTitleCache();
                     break;
                 }
             }
-            if(!didname[0].isEmpty()) {
-                didname[1] = ref.getTitleCache();
-                break;
-            }
         }
         return didname;
     }