On Tue, 7 Mar 2023 11:59:20 GMT, Florian Kirmaier <fkirma...@openjdk.org> wrote:

> When an exception is logged in JavaFX, then the exception is kept in a 
> reference.
> This way, always the last logged exception is retained.
> 
> This is a memory-leak.
> This was done to write unit-tests to ensure certain error-cases are logged.
> 
> A simple fix is, to add a flag, to enable/disable retaining the exception.

Well...  I'm quite surprised to see code testing for log messages -- its a very 
bad practice.  The side effects should be testable with or without the message 
(ie, if something throws NPE, the old value is restored or not modified, etc).  
I doubt the log messages are part of any contract that JavaFX specifies.  But 
anyway...

I noticed though that the `check` method only checks the class, yet the entire 
exception is stored.  Storing only the class would also alleviate this issue, 
although it could still prevent class unloading then.

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

PR: https://git.openjdk.org/jfx/pull/1053

Reply via email to