Author: bleny Date: 2014-02-28 17:53:44 +0100 (Fri, 28 Feb 2014) New Revision: 1707 Url: http://codelutin.com/projects/wao/repository/revisions/1707 Log: refs #4482 prevent NPE when indexing boat districts Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java 2014-02-28 16:52:18 UTC (rev 1706) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java 2014-02-28 16:53:44 UTC (rev 1707) @@ -25,13 +25,12 @@ */ -import com.google.common.collect.Maps; import fr.ifremer.wao.entity.TerrestrialLocation; -import fr.ifremer.wao.entity.TerrestrialLocations; import org.nuiton.csv.ValueParserFormatter; import org.nuiton.i18n.I18n; import java.text.ParseException; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,12 +40,14 @@ public DistrictParserFormatter(List<TerrestrialLocation> districts) { if (districts != null) { + indexedDistricts = new HashMap<>(); for (TerrestrialLocation district : districts) { if ( ! district.isDistrict()) { throw new IllegalArgumentException(); } + indexedDistricts.put(district.getDistrictCode(), district); } - indexedDistricts = Maps.uniqueIndex(districts, TerrestrialLocations.getDistrictCode()); + // XXX brendan 28/02/14 on utilise pas Maps.uniqueIndex car la clé peut être null (quartier maritime « Hors France ») } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java 2014-02-28 16:52:18 UTC (rev 1706) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java 2014-02-28 16:53:44 UTC (rev 1707) @@ -23,15 +23,14 @@ */ package fr.ifremer.wao.services.service.csv.operations; -import com.google.common.collect.Maps; import fr.ifremer.wao.entity.TerrestrialLocation; -import fr.ifremer.wao.entity.TerrestrialLocations; import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.ValueParserFormatter; import org.nuiton.i18n.I18n; import java.text.ParseException; import java.util.Collection; +import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -41,14 +40,14 @@ protected Map<String, TerrestrialLocation> indexedDistricts; public DistrictsParserFormatter(List<TerrestrialLocation> districts) { - if (districts != null) { - for (TerrestrialLocation district : districts) { - if ( ! district.isDistrict()) { - throw new IllegalArgumentException(); - } + indexedDistricts = new HashMap<>(); + for (TerrestrialLocation district : districts) { + if ( ! district.isDistrict()) { + throw new IllegalArgumentException(); } - indexedDistricts = Maps.uniqueIndex(districts, TerrestrialLocations.getDistrictCode()); + indexedDistricts.put(district.getDistrictCode(), district); } + // XXX brendan 28/02/14 on utilise pas Maps.uniqueIndex car la clé peut être null (quartier maritime « Hors France ») } @Override