aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/src/main/java/com/vaadin/ui/AbstractDateField.java9
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java7
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java7
3 files changed, 12 insertions, 11 deletions
diff --git a/server/src/main/java/com/vaadin/ui/AbstractDateField.java b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
index e9cc87359d..3db6ce42ea 100644
--- a/server/src/main/java/com/vaadin/ui/AbstractDateField.java
+++ b/server/src/main/java/com/vaadin/ui/AbstractDateField.java
@@ -217,7 +217,12 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster &
if (hasChanges) {
dateString = newDateString;
- if (newDateString != null && !newDateString.isEmpty()) {
+ if (newDateString == null || newDateString.isEmpty()) {
+ setValue(newDate, true);
+ uiHasValidDateString = true;
+ currentParseErrorMessage = null;
+ setComponentError(null);
+ } else {
if (variables.get("lastInvalidDateString") != null) {
Result<T> parsedDate = handleUnparsableDateString(dateString);
parsedDate.ifOk(this::setValue);
@@ -230,8 +235,6 @@ public abstract class AbstractDateField<T extends Temporal & TemporalAdjuster &
} else {
setValue(newDate, true);
}
- } else {
- setValue(newDate, true);
}
markAsDirty();
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java
index dacbae3db1..b7df7d7f20 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateFieldIsValidTest.java
@@ -46,15 +46,14 @@ public class DateFieldIsValidTest extends MultiBrowserTest {
assertLogText("2. buttonClick: value: 01/01/01, is valid: true");
dateTextbox.sendKeys("lala", Keys.TAB);
- assertLogText("3. valueChange: value: null, is valid: false");
button.click();
- assertLogText("4. buttonClick: value: null, is valid: false");
+ assertLogText("3. buttonClick: value: null, is valid: false");
dateTextbox.clear();
dateTextbox.sendKeys("02/02/02", Keys.TAB);
- assertLogText("5. valueChange: value: 02/02/02, is valid: true");
+ assertLogText("4. valueChange: value: 02/02/02, is valid: true");
button.click();
- assertLogText("6. buttonClick: value: 02/02/02, is valid: true");
+ assertLogText("5. buttonClick: value: 02/02/02, is valid: true");
}
private void assertLogText(String expected) throws Exception {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java
index 06e8a146c0..04acc214e9 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldIsValidTest.java
@@ -46,15 +46,14 @@ public class DateTimeFieldIsValidTest extends MultiBrowserTest {
assertLogText("2. buttonClick: value: 01/01/01 1.12, is valid: true");
dateTextbox.sendKeys("lala", Keys.TAB);
- assertLogText("3. valueChange: value: null, is valid: false");
button.click();
- assertLogText("4. buttonClick: value: null, is valid: false");
+ assertLogText("3. buttonClick: value: null, is valid: false");
dateTextbox.clear();
dateTextbox.sendKeys("02/02/02 2.34", Keys.TAB);
- assertLogText("5. valueChange: value: 02/02/02 2.34, is valid: true");
+ assertLogText("4. valueChange: value: 02/02/02 2.34, is valid: true");
button.click();
- assertLogText("6. buttonClick: value: 02/02/02 2.34, is valid: true");
+ assertLogText("5. buttonClick: value: 02/02/02 2.34, is valid: true");
}
private void assertLogText(String expected) throws Exception {