diff options
author | elmot <elmotelmot.vaadin.com> | 2017-07-28 12:04:49 +0300 |
---|---|---|
committer | elmot <elmotelmot.vaadin.com> | 2017-07-28 12:04:49 +0300 |
commit | 84a52d57ea208b9b79aa6c7d8ac5c65051359ba6 (patch) | |
tree | 6f4aa74bbfbda8f63d8f725a411fc03ad8234806 | |
parent | c9ac09cd1b14d753469548cda62c97aa00bb3a82 (diff) | |
download | vaadin-framework-84a52d57ea208b9b79aa6c7d8ac5c65051359ba6.tar.gz vaadin-framework-84a52d57ea208b9b79aa6c7d8ac5c65051359ba6.zip |
Empty string handling fix
-rw-r--r-- | server/src/main/java/com/vaadin/ui/AbstractDateField.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java index 83db0ff905..e9cc87359d 100644 --- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java +++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java @@ -201,26 +201,29 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster & T newDate; + boolean hasChanges = false; + if ("".equals(newDateString)) { newDate = null; + hasChanges = !uiHasValidDateString; uiHasValidDateString = true; currentParseErrorMessage = null; } else { newDate = reconstructDateFromFields(variables, oldDate); } - boolean hasChanges = !Objects.equals(dateString, newDateString) || + hasChanges |= !Objects.equals(dateString, newDateString) || !Objects.equals(oldDate, newDate); if (hasChanges) { dateString = newDateString; if (newDateString != null && !newDateString.isEmpty()) { - String invalidDateString = (String) variables.get("lastInvalidDateString"); - if (invalidDateString != null) { + if (variables.get("lastInvalidDateString") != null) { Result<T> parsedDate = handleUnparsableDateString(dateString); parsedDate.ifOk(this::setValue); if (parsedDate.isError()) { - uiHasValidDateString = true; + doSetValue(null); + uiHasValidDateString = false; currentParseErrorMessage = parsedDate.getMessage().orElse("Parsing error"); setComponentError(new UserError(getParseErrorMessage())); } |