RFR: 8255248: NullPointerException in JFXPanel due to race condition in HostContainer [v2]
Andy Goryachev
angorya at openjdk.org
Thu Nov 13 17:52:40 UTC 2025
On Thu, 13 Nov 2025 03:09:21 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line 212:
>>
>>> 210:
>>> 211: private static void debug_println(String str) {
>>> 212: if (DEBUG) {
>>
>> I am sorry, I was not sufficiently clear.
>> This method does not need the conditional. The conditionals are needed in **every** place that calls here.
>> In other words, we don't want to incur the string concatenation overhead if **DEBUG** is false.
>
> will that be too much overhead? We had used the same in jdk having DEBUG check in one place...but I will modify it for FX..
Then you might want to fix all these places in JDK!
The code you currently have now (after https://github.com/openjdk/jfx/pull/1968/commits/115001f6c92b587574c67624f0033cabaabe04d0 ) has minimum runtime overhead - basically a boolean check.
Anything else consumes more CPU and memory at runtime (we don't have a pre-processor in java thankfully), so `if(DEBUG) { debug_print(...); }` is the best, albeit a bit verbose option.
Event the modern logging facades incur more overhead with lambdas or formats, since one needs to actually enter the logging function to check whether the level/logger is enabled. I mean `logger.debug("param {}", param);` or `logger.debug("param {}", () -> param());`
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2524388270
More information about the openjfx-dev
mailing list