On Thu, 19 Dec 2019 13:23:25 GMT, Jeanette Winzenburg <faste...@openjdk.org> 
wrote:

>> Hi everyone,
>> 
>> ticket: https://bugs.openjdk.java.net/browse/JDK-8236259
>> 
>> The fix itself is quite straight forward.
>> It basically just removed the listener which causes the leak.
>> 
>> The unit-test for the fix is a bit more complicated.
>> 
>> I added a library JMemoryBuddy https://github.com/Sandec/JMemoryBuddy 
>> (written by myself), which simplifies testing for memory leaks.
>> I think there are many places in the JavaFX-codebase that could highly 
>> benefit from this library.
>> It could also simplify many of the already existing unit tests.
>> It makes testing for memory-leaks readably and reliable. 
>> It would also be possible to just copy the code of the library into the 
>> JavaFX-codebase. 
>> It only contains a single class.
>> 
>> I also had to make a method public, to write the test. I'm open to ideas, 
>> how I could solve it differently.
> 
> modules/javafx.controls/src/main/java/javafx/scene/control/skin/ProgressIndicatorSkin.java
>  line 521:
> 
>> 520:             registerChangeListener(text.fontProperty(), 
>> (Consumer<ObservableValue<?>>) fontListener);
>> 521: 
>> 522:             // The circular background for the progress pie piece
> 
> wondering why you add a (strong) field reference here? 
> 
> Thought that registerChangeListener(observableValue, consumer) takes care of 
> handling storage/cleanup - provided its counter-method 
> unregisterChangeListener(observableValue) is called, which is missing, so 
> seems to be the only part that has to be added. Or not?

Yes, that doesn't make a lot of sense. It's probably an artifact because I 
expected a different API do unregister the listener. I'm gonna change it back!

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

PR: https://git.openjdk.java.net/jfx/pull/71

Reply via email to