From: Andreas Kohlbecker Date: Thu, 25 Jun 2015 16:39:24 +0000 (+0200) Subject: some bugfixes in CondensedDistribution composition code - #3907 X-Git-Tag: 3.7.0~98 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/commitdiff_plain/c59da2646103ea436e37f25b35288c6b0042e361 some bugfixes in CondensedDistribution composition code - #3907 --- diff --git a/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EditGeoServiceUtilities.java b/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EditGeoServiceUtilities.java index 86245dca66..47d01471c7 100644 --- a/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EditGeoServiceUtilities.java +++ b/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EditGeoServiceUtilities.java @@ -780,6 +780,9 @@ public class EditGeoServiceUtilities { public static CondensedDistribution getCondensedDistribution(Collection filteredDistributions, CondensedDistributionRecipe recipe, List langs) { ICondensedDistributionComposer composer; + if(recipe == null) { + throw new NullPointerException("parameter recipe must not be null"); + } try { composer = recipe.newCondensedDistributionComposerInstance(); } catch (InstantiationException e) { diff --git a/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EuroPlusMedCondensedDistributionComposer.java b/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EuroPlusMedCondensedDistributionComposer.java index a87a62ed89..d0a2af7585 100644 --- a/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EuroPlusMedCondensedDistributionComposer.java +++ b/cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/geo/EuroPlusMedCondensedDistributionComposer.java @@ -115,10 +115,14 @@ public class EuroPlusMedCondensedDistributionComposer implements ICondensedDistr //1. order by PresenceAbsenceTerms Map> byStatus = new HashMap>(); for(Distribution d : filteredDistributions) { - if(!byStatus.containsKey(d.getStatus())) { - byStatus.put(d.getStatus(), new HashSet()); + PresenceAbsenceTerm status = d.getStatus(); + if(status == null) { + continue; } - byStatus.get(d.getStatus()).add(d.getArea()); + if(!byStatus.containsKey(status)) { + byStatus.put(status, new HashSet()); + } + byStatus.get(status).add(d.getArea()); } //2. build the area hierarchy @@ -196,11 +200,14 @@ public class EuroPlusMedCondensedDistributionComposer implements ICondensedDistr * @return */ private String statusSymbol(PresenceAbsenceTerm status) { + if(status == null) { + return ""; + } String symbol = statusSymbols.get(status.getUuid()); if(symbol == null) { symbol = ""; } - return symbol ; + return symbol; } private boolean isForeignStatus(PresenceAbsenceTerm status) { diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionPortalController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionPortalController.java index 9d97ca5d49..671807e30b 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionPortalController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionPortalController.java @@ -256,7 +256,7 @@ public class DescriptionPortalController extends BaseController presenceAbsenceTermColors = EditGeoServiceUtilities.buildStatusColorMap(statusColorsString, termService); DistributionInfoDTO dto = geoService.composeDistributionInfoFor(parts, taxonUuid, subAreaPreference, statusOrderPreference, - hideMarkedAreas, omitLevels, presenceAbsenceTermColors, LocaleContext.getLanguages(), DISTRIBUTION_INFO_INIT_STRATEGY, null); + hideMarkedAreas, omitLevels, presenceAbsenceTermColors, LocaleContext.getLanguages(), DISTRIBUTION_INFO_INIT_STRATEGY, recipe); mv.addObject(dto); diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/CondensedDistribution.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/CondensedDistribution.java index bd3f083c7a..d5eab4d8aa 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/CondensedDistribution.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/dto/CondensedDistribution.java @@ -103,7 +103,7 @@ public class CondensedDistribution { return out.toString(); } - class DistributionItem { + public class DistributionItem { private PresenceAbsenceTerm status;