Browse Source

Add missing null check to Binding (#10726)

* Add missing null check to Binding
tags/8.4.0.alpha1
Teemu Suo-Anttila 6 years ago
parent
commit
5aa6433972

+ 5
- 3
server/src/main/java/com/vaadin/data/Binder.java View File

@@ -1139,9 +1139,11 @@ public class Binder<BEAN> implements Serializable {
*/
private void handleFieldValueChange(
ValueChangeEvent<FIELDVALUE> event) {
// Inform binder of changes; if setBean: writeIfValid
getBinder().handleFieldValueChange(this, event);
getBinder().fireValueChangeEvent(event);
if (binder != null) {
// Inform binder of changes; if setBean: writeIfValid
getBinder().handleFieldValueChange(this, event);
getBinder().fireValueChangeEvent(event);
}
}

/**

+ 19
- 0
server/src/test/java/com/vaadin/data/BinderTest.java View File

@@ -811,6 +811,25 @@ public class BinderTest extends BinderTestBase<Binder<Person>, Person> {
String.valueOf(item.getAge()), ageField.getValue());
}

@Test
public void remove_binding_fromFieldValueChangeListener() {
// Add listener before bind to make sure it will be executed first.
nameField.addValueChangeListener(e -> {
if (e.getValue() == "REMOVE") {
binder.removeBinding(nameField);
}
});

binder.bind(nameField, Person::getFirstName, Person::setFirstName);

binder.setBean(item);

nameField.setValue("REMOVE");

// Removed binding should not update bean.
assertNotEquals("REMOVE", item.getFirstName());
}

@Test
public void beanvalidation_two_fields_not_equal() {
TextField lastNameField = new TextField();

Loading…
Cancel
Save