aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/main/java/com/vaadin/ui/AbstractDateField.java
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/main/java/com/vaadin/ui/AbstractDateField.java')
-rw-r--r--server/src/main/java/com/vaadin/ui/AbstractDateField.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
index a4677e6ec3..841ad0392e 100644
--- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java
+++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
@@ -107,14 +107,19 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster &
newDate = reconstructDateFromFields(resolutions, oldDate);
}
+ boolean parseErrorWasSet = currentParseErrorMessage != null;
hasChanges |= !Objects.equals(dateString, newDateString)
- || !Objects.equals(oldDate, newDate);
+ || !Objects.equals(oldDate, newDate)
+ || parseErrorWasSet;
if (hasChanges) {
dateString = newDateString;
currentParseErrorMessage = null;
if (newDateString == null || newDateString.isEmpty()) {
- setValue(newDate, true);
+ boolean valueChanged = setValue(newDate, true);
+ if(!valueChanged && parseErrorWasSet) {
+ doSetValue(newDate);
+ }
} else {
// invalid date string
if (resolutions.isEmpty()) {