From 8eb3164845d8d44877d2b6231836cd2e02dcab85 Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Fri, 15 Oct 2010 12:28:55 +0000 Subject: [PATCH] #5785 AbstractStringValidator should convert non-string values svn changeset:15564/svn branch:6.4 --- .../data/validator/AbstractStringValidator.java | 9 +++++---- .../validation/TestReadOnlyValidation.java | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java diff --git a/src/com/vaadin/data/validator/AbstractStringValidator.java b/src/com/vaadin/data/validator/AbstractStringValidator.java index 359d83ef10..90778e16b1 100644 --- a/src/com/vaadin/data/validator/AbstractStringValidator.java +++ b/src/com/vaadin/data/validator/AbstractStringValidator.java @@ -42,20 +42,21 @@ public abstract class AbstractStringValidator extends AbstractValidator { * Tests if the given value is a valid string. *

* Null values are always accepted. Values that are not {@link String}s are - * always rejected. Uses {@link #isValidString(String)} to validate the - * value. + * converted using {@link #toString()}. Then {@link #isValidString(String)} + * is used to validate the value. *

* * @param value * the value to check - * @return true if the value is a valid string, false otherwise + * @return true if the value (or its toString()) is a valid string, false + * otherwise */ public boolean isValid(Object value) { if (value == null) { return true; } if (!(value instanceof String)) { - return false; + value = String.valueOf(value); } return isValidString((String) value); } diff --git a/tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java b/tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java new file mode 100644 index 0000000000..2765bf6b13 --- /dev/null +++ b/tests/src/com/vaadin/tests/validation/TestReadOnlyValidation.java @@ -0,0 +1,17 @@ +package com.vaadin.tests.validation; + +import org.junit.Test; + +import com.vaadin.data.validator.IntegerValidator; +import com.vaadin.ui.TextField; + +public class TestReadOnlyValidation { + + @Test + public void testIntegerValidation() { + TextField field = new TextField(); + field.addValidator(new IntegerValidator("Enter a Valid Number")); + field.setValue(Integer.valueOf(10)); + field.validate(); + } +} -- 2.39.5