From c5c45989b9de477960ae66a2503ae11dedc3e851 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Thu, 25 Nov 2010 09:09:59 +0000 Subject: Fix for #5994 - Entering null value representation in TextField throws NPE svn changeset:16143/svn branch:6.5 --- src/com/vaadin/ui/TextField.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/com/vaadin/ui/TextField.java b/src/com/vaadin/ui/TextField.java index 64dbf933b2..0f0758c4a9 100644 --- a/src/com/vaadin/ui/TextField.java +++ b/src/com/vaadin/ui/TextField.java @@ -461,17 +461,27 @@ public class TextField extends AbstractTextField implements @Override protected void setInternalValue(Object newValue) { - if (changingVariables - && !newValue.toString().equals(lastKnownTextContent)) { + if (changingVariables) { /* * Fire text change event before value change event if change is * coming from the client side. */ - lastKnownTextContent = newValue.toString(); - textChangeEventPending = true; - firePendingTextChangeEvent(); - } + if (newValue == null && lastKnownTextContent != null + && !lastKnownTextContent.equals(getNullRepresentation())) { + // Value was changed from something to null representation + lastKnownTextContent = getNullRepresentation(); + textChangeEventPending = true; + } else if (newValue != null + && !newValue.toString().equals(lastKnownTextContent)) { + // Value was changed to something else than null representation + lastKnownTextContent = newValue.toString(); + textChangeEventPending = true; + } + if (textChangeEventPending) { + firePendingTextChangeEvent(); + } + } super.setInternalValue(newValue); } -- cgit v1.2.3