setValue() in DateTimeField components ValueChangeListener

Hi,

I have an issue here and I’m not sure if I understand the problem correct because I’m quite new to Vaadin.

The idea is, that an user can choose a time using the DateTimeField component which is then rounded to 30 minutes.

It works in Vaadin 8.1.8 but does not work properly in 8.2.0. The value is set on the component, but not shown on the frontent in the text field of the component. The first time it is shown, but then the front end gets no updates anymore.


takeOverDate.addValueChangeListener(event -> {
    if (!takeOverDate.isEmpty()) {
        if (!isAlreadyTruncated(takeOverDate.getValue())) {
            takeOverDate.setValue(truncate(takeOverDate.getValue()));
        }
    }
});

Do I somehow have to force an update?

I would be happy if someone could give me a tip.

Best Regards,
Patrik

I removed the non important parts from the project and made a minimal running example which shows the problem:
https://github.com/paburk/test

git clone https://github.com/paburk/test.git
mvn jetty:run


http://localhost:8080/CarReservation/

If a user chooses a time between a full half hour, the time gets truncated to 00 or 30 minutes. You will see, that this only happens once, but then not anymore. However, the warning notification keeps showing the truncated time.

In 8.1.8 I can do that as many times as possible.

I tested this in Vaadin 8.1.8, 8.2.0 and 8.3.1 and it worked perfect for me im all variants. Does your isAlreadyTruncated method work properly?