On Mon, 10 Nov 2025 10:37:25 GMT, Prasanta Sadhukhan <[email protected]> 
wrote:

> NPE is seen while accessing transient "scenePeer" variable between reads..
> Fix is made to store it in a temp variable rather than reading it twice since 
> the value can change between successive reads in many places it is accessed.
> Also some debug logs added to be enabled via `jfxpanel.debug` property

modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line 215:

> 213: 
> 214:         debugPrint = "true".equalsIgnoreCase(debugStr);
> 215:     }

suggestion:

private static final boolean DEBUG = Boolean.getBoolean("jfxpanel.debug");

modules/javafx.swing/src/main/java/javafx/embed/swing/JFXPanel.java line 217:

> 215:     }
> 216: 
> 217:     protected static void debug_println(String str) {

javadoc complains about this new public API.  Or is it a temporary debugging 
thing?  Can it be declared `private`?

If it is a permanent thing, it incurs a string concatenation overhead even when 
disabled.  Use lambdas instead?  Alternatively (and faster), one needs to check 
if debug printout is enabled on each use inline:


if(DEBUG) {
  debug_println("JFXPanel Thread " + Thread.currentThread().getName() + " 
isFXUserThread " + Toolkit.getToolkit().isFxUserThread());
}

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2511593814
PR Review Comment: https://git.openjdk.org/jfx/pull/1968#discussion_r2511576430

Reply via email to