X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fnaming%2FNamingUtils.java;h=7d5c7b7d3d82d8dc4a9a3926ed316f7761d39c5b;hb=340143248684eb5fd4d45f7924b9afa3442cd86c;hp=64fd65faa470aea8721334f0defef883fe9bd7e3;hpb=0a91fbf74e55efcd33b7b225690b9807b791219a;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/naming/NamingUtils.java b/org.argeo.enterprise/src/org/argeo/naming/NamingUtils.java index 64fd65faa..7d5c7b7d3 100644 --- a/org.argeo.enterprise/src/org/argeo/naming/NamingUtils.java +++ b/org.argeo.enterprise/src/org/argeo/naming/NamingUtils.java @@ -4,11 +4,13 @@ import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; +import java.time.DateTimeException; import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; import java.util.Calendar; import java.util.GregorianCalendar; @@ -21,8 +23,13 @@ public class NamingUtils { private final static DateTimeFormatter utcLdapDate = DateTimeFormatter.ofPattern("uuuuMMddHHmmssX") .withZone(ZoneOffset.UTC); + /** @return null if not parseable */ public static Instant ldapDateToInstant(String ldapDate) { - return OffsetDateTime.parse(ldapDate, utcLdapDate).toInstant(); + try { + return OffsetDateTime.parse(ldapDate, utcLdapDate).toInstant(); + } catch (DateTimeParseException e) { + return null; + } } public static Calendar ldapDateToCalendar(String ldapDate) { @@ -66,7 +73,8 @@ public class NamingUtils { query_pairs.put(key, new LinkedList()); } final String value = idx > 0 && pair.length() > idx + 1 - ? URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8.name()) : null; + ? URLDecoder.decode(pair.substring(idx + 1), StandardCharsets.UTF_8.name()) + : null; query_pairs.get(key).add(value); } return query_pairs;