RFR: 8290310: ChangeListener events are incorrect or misleading when a nested change occurs [v7]

John Hendrikx jhendrikx at openjdk.org
Thu Mar 6 09:48:06 UTC 2025


On Thu, 6 Mar 2025 03:08:58 GMT, Nir Lisker <nlisker at openjdk.org> wrote:

>> John Hendrikx has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Fix docs
>
> I tested the new convergence check. If listener A and listener B fight over a value, it works, but if I add after then listener C that just prints what it sees without changing the value, it completes without an error.
> 
> Is it not possible to let the SOE be thrown naturally (by infinite recursion)?
> 
>> Note that the non-convergence detection logic is pretty smart, as the test case where multiple listeners are trying to agree upon a value that is divisible by 3, 5, 7 and 11 still works fine
> 
> And what about non-integer values, like custom objects or strings?

@nlisker I've fixed the edge case you found -- thanks very much for finding it; the extra listener would overwrite the progress value and so the aborted nested loop would go undetected. I added an additional test case to cover this.

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

PR Comment: https://git.openjdk.org/jfx/pull/1081#issuecomment-2703325887


More information about the openjfx-dev mailing list