On Mon, 22 Mar 2021 14:30:58 GMT, Florian Kirmaier <fkirma...@openjdk.org> 
wrote:

>> Fixing a memory leak. 
>> A node hard references its old parent after CSS layout and getting removed. 
>> This shouldn't be the case, this is very counterintuitive.
>> 
>> The fix uses a WeakReference in CSSStyleHelper for firstStyleableAncestor.
>> This should be fine because the CSS should only depend on it if it's still 
>> the real parent. 
>> In that case, it doesn't get collected.
>
> Florian Kirmaier has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8263402
>   Rewrote the style memoryleak test

Provided few comments on test.

tests/system/src/test/java/test/javafx/scene/StyleMemoryLeakTest.java line 48:

> 46: import static org.junit.Assert.fail;
> 47: import static org.junit.Assert.assertTrue;
> 48: 

The packages Application, Node and Parent are not used.

tests/system/src/test/java/test/javafx/scene/StyleMemoryLeakTest.java line 59:

> 57:             startupLatch.countDown();
> 58:         });
> 59:         assertTrue("Timeout waiting for FX runtime to start", 
> startupLatch.await(15, TimeUnit.SECONDS));

The runnable passed to `Platform.startup()` is executed on JavaFX Application 
thread once it is started. `Platform.setImplicitExit(false);` can be called 
from any thread. So we do not need to pass the runnable and do not need 
CountDownLatch.
This block can be replaced by,
Platform.startup(null);
Platform.setImplicitExit(false);

tests/system/src/test/java/test/javafx/scene/StyleMemoryLeakTest.java line 100:

> 98:         Platform.runLater(() -> {
> 99:             Platform.exit();
> 100:         });

`Platform.exit()` can be called from any thread. So `Platform.runLater` is not 
required.

tests/system/src/test/java/test/javafx/scene/StyleMemoryLeakTest.java line 102:

> 100:         });
> 101:     }
> 102: }

Include a new line at end of file.

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

Changes requested by arapte (Reviewer).

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

Reply via email to