{field} does not have an accessible setter

I’m getting an error but I don’t understand why. I had one Checkbox, active, and it works just fine. It gets persisted, shows up in the form, and in my grid listview. Then I added two more of the same type, broadcastReady and stageReady but I’m getting the following logged:

com.vaadin.flow.data.binder.Binder       : broadcastReady does not have an accessible setter
com.vaadin.flow.data.binder.Binder       : stageReady does not have an accessible setter

I have them defined in Person as:

@NotNull
private Boolean active = Boolean.FALSE;

@NotNull
private Boolean broadcastReady = Boolean.FALSE;

@NotNull
private Boolean stageReady = Boolean.FALSE;

In the PerformForm (extends FormLayout) I have:

Binder<Person> binder = new BeanValidationBinder<>(Person.class);
Checkbox active = new Checkbox("Active");
Checkbox broadcastReady = new Checkbox("Broadcast");
Checkbox stageReady = new Checkbox("Stage");

Later on I have

HorizontalLayout checkboxes = new HorizontalLayout(active, broadcastReady, stageReady);

and add them to the form in the usual way.

The Active checkbox still functions, but the other two checkboxes do not. I’ve traced the code all the way into the binder and when it checks for the setter method, it is indeed null, but I don’t know why this is. Am I missing something or is there some strange bug with having multiple checkboxes?

I tracked it down. I use Lombok and had @Data at the top. I had previously added two methods:

public boolean getBroadcastReady() {
    return broadcastReady;
}

public boolean getStageReady() {
    return stageReady;
}

and these return boolean and not Boolean, as defined by the property. So I’m thinking the Vaadin binder (or other?) got confused by my mistake. After removing these two gettters, letting Lombok generate them, everything works now. I’m posting my find here in case someone else has the same issue.