From ba5f3777795386d77fb7805c035f06a3b0a1dac0 Mon Sep 17 00:00:00 2001 From: Anastasia Smirnova Date: Mon, 16 Apr 2018 10:26:15 +0300 Subject: Handle UnparsableDateString correctly (#10803) Resolves #10681 --- server/src/main/java/com/vaadin/ui/AbstractDateField.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'server') diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java index 19b628b1f2..a4677e6ec3 100644 --- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java +++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java @@ -38,6 +38,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.stream.Stream; +import elemental.json.Json; import org.jsoup.nodes.Element; import com.googlecode.gentyref.GenericTypeReflector; @@ -119,7 +120,17 @@ public abstract class AbstractDateField parsedDate = handleUnparsableDateString( dateString); - parsedDate.ifOk(v -> setValue(v, true)); + // If handleUnparsableDateString returns the same + // date as current, force update state to display + // correct representation + parsedDate.ifOk(v -> { + if (!setValue(v, true) + && !isDifferentValue(v)) { + updateDiffstate("resolutions", + Json.createObject()); + doSetValue(v); + } + }); if (parsedDate.isError()) { dateString = null; currentParseErrorMessage = parsedDate -- cgit v1.2.3