On Sat, 8 Apr 2023 23:56:10 GMT, Nir Lisker <nlis...@openjdk.org> wrote:

> I reviewed the first bug and the fix looks good.
> 
> The fix adds a `boolean` field to all `ObjectBinding`s, which could be a 
> slight performance hit. I have a local version of a refactored 
> `ExpressionHelper` class that uses a singleton instance for an empty helper 
> instead of `null`. It makes the code cleaner (no special `null` handling) and 
> will allow to get rid of the new `observed` field because that info can be 
> encoded in `ExpressionHelper` instead of in `ObjectBinding`. After all, the 
> info of being observed really belongs in the class that manages the listeners 
> IMO. Not sure if it's worth pursuing at the moment.

I think something will need to change with the `ExpressionHelper` given the 
amount of problems it has currently.  At that time the boolean could be removed 
again.
 
> Also, I really wish we could make `add/removeListener` throw on `null` :)

You mean immediately?  Because the `null` check is done by `ExpressionHelper` 
already.  What I wish for is that `removeListener` would throw when removing 
non-existing listeners; that would expose a ton of logic errors where code is 
removing some listener that it thought was present, but wasn't...
 
> I still need to finish reviewing the second bug. The logic flow is a bit 
> complicated when taking into account the many states the binding can be at 
> (valid, observed, active...). One question I have is about the tests: why 
> split a When test class from an already existing one in the fluent bindings 
> test?

I mainly did that as I felt it didn't fit well in the structure of that other 
test, but it could be added there.  I also think that big test class may 
benefit from splitting up; it was getting a bit unwieldy.

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

PR Comment: https://git.openjdk.org/jfx/pull/1056#issuecomment-1501081120

Reply via email to