On Sun, 17 Jul 2022 20:59:46 GMT, John Hendrikx <jhendr...@openjdk.org> wrote:
> This contains the following: > - Nested changes or invalidations using ExpressionHelper are delayed until > the current emission completes > - This fixes odd change events being produced (with incorrect oldValue) > - Also fixes a bug in ExpressionHelper where a nested change would unlock > the listener list early, which could cause a > `ConcurrentModificationException` if a nested change was combined with a > remove/add listener call > - A test for ExpressionHelper to verify the new behavior > - A test for all *Property and *Binding classes that verifies correct > listener behavior at the API level (this tests gets 85% coverage on > ExpressionHelper on its own, the only thing it is not testing is the locking > behavior, which is not relevant at the API level). > - A fix for `WebColorFieldSkin` which triggered a nested change which used a > flag to prevent an event loop (I've changed it now to match how > `DoubleFieldSkin` and `IntegerFieldSkin` do it I've re-read the discussion on the [mailing list](https://mail.openjdk.org/pipermail/openjfx-dev/2022-July/034705.html). The approach as implemented in this PR is a good solution, as it has a very low implementation and runtime overhead, and gets us to having consistent histories for change listeners. ------------- Marked as reviewed by mstrauss (Committer). PR: https://git.openjdk.org/jfx/pull/837