aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorelmot <elmotelmot.vaadin.com>2017-07-28 12:04:49 +0300
committerelmot <elmotelmot.vaadin.com>2017-07-28 12:04:49 +0300
commit84a52d57ea208b9b79aa6c7d8ac5c65051359ba6 (patch)
tree6f4aa74bbfbda8f63d8f725a411fc03ad8234806
parentc9ac09cd1b14d753469548cda62c97aa00bb3a82 (diff)
downloadvaadin-framework-84a52d57ea208b9b79aa6c7d8ac5c65051359ba6.tar.gz
vaadin-framework-84a52d57ea208b9b79aa6c7d8ac5c65051359ba6.zip
Empty string handling fix
-rw-r--r--server/src/main/java/com/vaadin/ui/AbstractDateField.java11
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()));
}