From 060ef6168ae982b2a4805e4f94b745c832627dc7 Mon Sep 17 00:00:00 2001 From: Sergio Copeto Date: Wed, 6 May 2026 14:55:45 +0100 Subject: [PATCH 1/2] Fix parsing of empty strings for dates --- src/main/java/com/onfido/JSON.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/onfido/JSON.java b/src/main/java/com/onfido/JSON.java index 156f2bd..bdcf017 100644 --- a/src/main/java/com/onfido/JSON.java +++ b/src/main/java/com/onfido/JSON.java @@ -612,9 +612,14 @@ public LocalDate read(JsonReader in) throws IOException { case NULL: in.nextNull(); return null; - default: + case STRING: String date = in.nextString(); + if (date.isEmpty()) { + return null; + } return LocalDate.parse(date, formatter); + default: + throw new IllegalStateException("Expected STRING or NULL but was " + in.peek()); } } } From 158cd987048fd429537aeb74861e6273206b8283 Mon Sep 17 00:00:00 2001 From: Sergio Copeto Date: Thu, 7 May 2026 09:58:43 +0100 Subject: [PATCH 2/2] Added testing --- src/test/java/com/onfido/JSONTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/test/java/com/onfido/JSONTest.java diff --git a/src/test/java/com/onfido/JSONTest.java b/src/test/java/com/onfido/JSONTest.java new file mode 100644 index 0000000..a36c13e --- /dev/null +++ b/src/test/java/com/onfido/JSONTest.java @@ -0,0 +1,16 @@ +package com.onfido; + +import java.time.LocalDate; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class JSONTest { + + @Test + public void parsesEmptyDateStringAsNull() { + com.onfido.model.Applicant applicant = + JSON.getGson().fromJson("{\"dob\": \"\"}", com.onfido.model.Applicant.class); + + Assertions.assertNull(applicant.getDob()); + } +}