On Sat, 17 Apr 2021 13:44:07 GMT, Jeanette Winzenburg <faste...@openjdk.org> 
wrote:

>> modules/javafx.controls/src/test/java/test/com/sun/javafx/scene/control/LambdaMultipleHandlerTest.java
>>  line 211:
>> 
>>> 209:         WeakReference<LambdaMultiplePropertyChangeListenerHandler> ref 
>>> =
>>> 210:                 new WeakReference<>(new 
>>> LambdaMultiplePropertyChangeListenerHandler());
>>> 211:         ref.get().registerListChangeListener(items, consumer);
>> 
>> This is fragile. It is possible, although unlikely, that the referent could 
>> be GCed between its construction in the previous statement (after which it 
>> goes out of scope), and this statement. If this rare event happened, it 
>> would cause an NPE here. I recommend to keep a local reference to the 
>> referent and then set it to null after this (and before the `attemptGC`).
>
> changed as suggested. I used a similar pattern in BehaviorMemoryTest - should 
> I file a testbug to change it in the same way?

Yes, please file a new bug (not high priority, since it is a corner case). I 
took a look and there are a few other controls tests that use this pattern as 
well (BehaviorCleanupTest, ListViewTest, TabPaneTest, SkinCleanupTest, 
SkinLabeledCleanupTest, SkinMemoryLeakTest), so the new bug could cover fixing 
this for all of them.

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

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

Reply via email to