소스 검색

Add missing null check to Binding (#10726)

* Add missing null check to Binding
tags/8.4.0.alpha1
Teemu Suo-Anttila 6 년 전
부모
커밋
5aa6433972
2개의 변경된 파일24개의 추가작업 그리고 3개의 파일을 삭제
  1. 5
    3
      server/src/main/java/com/vaadin/data/Binder.java
  2. 19
    0
      server/src/test/java/com/vaadin/data/BinderTest.java

+ 5
- 3
server/src/main/java/com/vaadin/data/Binder.java 파일 보기

@@ -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 파일 보기

@@ -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…
취소
저장