diff options
Diffstat (limited to 'server/src/main/java/com/vaadin/ui/AbstractDateField.java')
-rw-r--r-- | server/src/main/java/com/vaadin/ui/AbstractDateField.java | 9 |
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()) { |