<div dir="ltr">Hi Krishna,<div><br></div><div>Usually these are caused by doing something on the wrong thread in my experience. In our application we've had to be very careful about doing things on the right thread. Mostly it's fine to create things off the app thread and add them on the app thread, but that's not always the case. Things that create popup windows like tooltips and context menus need to be created on the app thread.</div><div><br></div><div>What you can do is set a conditional breakpoint in the parent class to catch changes to the children list which happen off the application thread.</div><div><br></div><div>Something like: this.getScene() != null && !Platform.isApplicationThread()</div><div><br></div><div>If that's too slow, then you'll have to modify javafx itself with an assert or an if statement in the children change listener:</div><div><br></div><div>if (this.getScene() != null && !Platform.isApplicationThread()) {<br>  System.out.println("Adding a node to the scene on the wrong thread");//set break point on this line and view the stack to see what's causing it<br>}</div><div><br></div><div>This might not be the cause of your problem, but if you have instances where things are done in the wrong thread, you'll definitely hit sporadic issues.</div><div><br></div><div>Dean</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 29, 2024 at 9:16 AM Krishna Kumar <<a href="mailto:kumaranbus@hotmail.com" target="_blank">kumaranbus@hotmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>




<div dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
I am encountering the following Null Pointer exception during runtime, however the application keeps working as intended.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Exception posted at the end to declutter the mail.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Google search for this exception took me to this thread</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><a href="https://mail.openjdk.org/pipermail/openjfx-dev/2023-December/044343.html" id="m_-2147920499060329548m_6433399601347668335LPlnk370437" target="_blank">https://mail.openjdk.org/pipermail/openjfx-dev/2023-December/044343.html</a></span></div>
<div><br>
</div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">but in my case the JVM doesn't crash, neither does the application crash. The application continues to work as intended. I am unable
 to identify the node that causes this as the stack trace doesn't originate from the Application code, could anyone throw some light. I am running the code on  /usr/lib/jvm/bellsoft-java21-full-amd64/bin/java</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">tion in thread "JavaFX Application Thread" java.lang.NullPointerException: Cannot read field "advances" because "this.layoutCache" is
 null</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.text.PrismTextLayout.shape(PrismTextLayout.java:919)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.text.PrismTextLayout.layout(PrismTextLayout.java:1113)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.text.PrismTextLayout.ensureLayout(PrismTextLayout.java:230)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.text.PrismTextLayout.getBounds(PrismTextLayout.java:256)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.text.Text.getLogicalBounds(Text.java:432)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.text.Text.doComputeLayoutBounds(Text.java:1137)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.text.Text$1.doComputeLayoutBounds(Text.java:143)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.scene.shape.TextHelper.computeLayoutBoundsImpl(TextHelper.java:95)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.scene.NodeHelper.computeLayoutBounds(NodeHelper.java:108)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node$13.computeBounds(Node.java:3474)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node$LazyBoundsProperty.get(Node.java:9749)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node$LazyBoundsProperty.get(Node.java:9740)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node.getLayoutBounds(Node.java:3489)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node.prefWidth(Node.java:2989)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node.minWidth(Node.java:2930)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildMinAreaWidth(Region.java:1898)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.getAreaWidths(HBox.java:462)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeContentWidth(HBox.java:549)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeMinWidth(HBox.java:409)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildMinAreaWidth(Region.java:1898)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.getMaxAreaWidth(Region.java:2227)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeMaxMinAreaWidth(Region.java:2064)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.VBox.computeMinWidth(VBox.java:399)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildMinAreaWidth(Region.java:1898)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.getAreaWidths(HBox.java:462)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeContentWidth(HBox.java:549)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeMinWidth(HBox.java:409)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildMinAreaWidth(Region.java:1898)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.getMaxAreaWidth(Region.java:2227)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeMaxMinAreaWidth(Region.java:2064)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.VBox.computeMinWidth(VBox.java:399)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildMinAreaWidth(Region.java:1898)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.getAreaWidths(HBox.java:462)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeContentWidth(HBox.java:549)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.HBox.computeMinWidth(HBox.java:409)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.minWidth(Parent.java:1049)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.minWidth(Region.java:1500)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeChildPrefAreaWidth(Region.java:1959)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.getMaxAreaWidth(Region.java:2228)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.computeMaxPrefAreaWidth(Region.java:2092)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.VBox.computePrefWidth(VBox.java:420)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.prefWidth(Parent.java:1021)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.layout.Region.prefWidth(Region.java:1536)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Node.autosize(Node.java:3138)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.layoutChildren(Parent.java:1239)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Parent.layout(Parent.java:1208)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Scene.doLayoutPass(Scene.java:594)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2600)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.Toolkit.lambda$runPulse$2(Toolkit.java:401)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:400)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:430)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:592)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:572)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:565)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$11(QuantumToolkit.java:352)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$runLoop$10(GtkApplication.java:263)</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">        at java.base/java.lang.Thread.run(Thread.java:1583)</span></div>
<div id="m_-2147920499060329548m_6433399601347668335Signature">
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
<div><span style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)"><br>
</span></div>
</div>
</div>

</div></blockquote></div>