"Check whether any of the bound fields' have uncommitted changes since last explicit call to {@link #readBean(Object)}, {@link #removeBean()}, * {@link #writeBean(Object)} or {@link #writeBeanIfValid(Object)}."
If readBean has converters, they will be run and field values updated accordingly. Furthermore if fields have value change listeners that will produce further changes in values, this should be considered according to above as part of readBean producedure and thus hasChanges still should return false.
JavaDoc of hasChanges says
"Check whether any of the bound fields' have uncommitted changes since last explicit call to {@link #readBean(Object)}, {@link #removeBean()}, * {@link #writeBean(Object)} or {@link #writeBeanIfValid(Object)}."
If readBean has converters, they will be run and field values updated accordingly. Furthermore if fields have value change listeners that will produce further changes in values, this should be considered according to above as part of readBean producedure and thus hasChanges still should return false.
fixes: https://github.com/vaadin/framework/issues/9581