Integrated: 8331616: ChangeListener is not triggered when the InvalidationListener is removed

John Hendrikx jhendrikx at openjdk.org
Tue May 7 19:12:01 UTC 2024


On Fri, 3 May 2024 14:45:24 GMT, John Hendrikx <jhendrikx at openjdk.org> wrote:

> This PR provides a fix for the linked issue.
> 
> The issue was that when an invalidation listener is removed, and the `ExpressionHelper` type changes from `Generic` to `SingleChange` that it would copy the current value of the `Generic` instance before it was updated (this is because invalidation listeners trigger before change listeners and the current value would only be updated **after** invalidation listeners notifications were completed).
> 
> The code now will update the current value before sending out any notifications **if** there are change listeners present to head off this problem.
> 
> Added a few test cases to verify this.
> 
> Note: the PR which replaces `ExpressionHelper` does not have this problem: https://github.com/openjdk/jfx/pull/1081

This pull request has now been integrated.

Changeset: 35880cec
Author:    John Hendrikx <jhendrikx at openjdk.org>
URL:       https://git.openjdk.org/jfx/commit/35880cec5a998598c64eecbc7b3ae56b6ee3a6d8
Stats:     69 lines in 2 files changed: 66 ins; 2 del; 1 mod

8331616: ChangeListener is not triggered when the InvalidationListener is removed

Reviewed-by: mstrauss, kcr

-------------

PR: https://git.openjdk.org/jfx/pull/1448


More information about the openjfx-dev mailing list