Code Review Request For RT-39856: Layout Regression - bad row height
Hi Kevin, Please review the proposed fix. JIRA: https://javafx-jira.kenai.com/browse/RT-39856 Thanks, - Chien
hg: openjfx/8u-dev/rt: RT-37421: [TreeView] TreeView layout regression
Changeset: fdcebfd4841f Author:jgiles Date: 2014-06-12 11:02 +1200 URL: http://hg.openjdk.java.net/openjfx/8u-dev/rt/rev/fdcebfd4841f RT-37421: [TreeView] TreeView layout regression ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/VirtualFlow.java ! modules/controls/src/test/java/javafx/scene/control/TableViewTest.java
Re: Layout regression
Application code only runs on the app thread. Setting the uncaught exception handler should work for you. Steve On 2014-05-23 8:33 AM, ngalarn...@abinitio.com wrote: How can we be notified of exceptions like these programmatically? When my code is on the call stack, I can catch the exception programmatically. In this stack trace, only JavaFX code is there, but I still want to know that something bad happened. For the case of the JavaFX Application Thread, I guess I could do a Platform.runLater & in that code call Thread.currentThread().setUncaughtExceptionHandler(myHandler) // ugh! Do I need to save away the previous one & chain to it? Is that the best way for this thread? What about JavaFX's other threads? Does application code ever run on those threads? How can I know that something went wrong on those threads? Even if my code never runs there, I still want an automated way to know if something went wrong. Thanks, Neil From: Scott Palmer To: "openjfx-dev@openjdk.java.net" , Date: 05/22/2014 03:56 PM Subject: Re: Layout regression Sent by:"openjfx-dev" This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer wrote: I'm investigating an issue with my application where things are working fine running with JavaFX 2.2 on 7u55, but I have a particular case where 8u5 is throwing the following exception during layout: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) at javafx.scene.control.Control.computePrefHeight(Control.java:543) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Control.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
Re: Layout regression
How can we be notified of exceptions like these programmatically? When my code is on the call stack, I can catch the exception programmatically. In this stack trace, only JavaFX code is there, but I still want to know that something bad happened. For the case of the JavaFX Application Thread, I guess I could do a Platform.runLater & in that code call Thread.currentThread().setUncaughtExceptionHandler(myHandler) // ugh! Do I need to save away the previous one & chain to it? Is that the best way for this thread? What about JavaFX's other threads? Does application code ever run on those threads? How can I know that something went wrong on those threads? Even if my code never runs there, I still want an automated way to know if something went wrong. Thanks, Neil From: Scott Palmer To: "openjfx-dev@openjdk.java.net" , Date: 05/22/2014 03:56 PM Subject: Re: Layout regression Sent by:"openjfx-dev" This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer wrote: > I'm investigating an issue with my application where things are > working fine running with JavaFX 2.2 on 7u55, but I have a particular > case where 8u5 is throwing the following exception during layout: > > Exception in thread "JavaFX Application Thread" java.lang.NullPointerException > at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) > at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) > at javafx.scene.Parent.minHeight(Parent.java:946) > at javafx.scene.layout.Region.minHeight(Region.java:1404) > at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) > at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) > at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) > at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) > at javafx.scene.Parent.minHeight(Parent.java:946) > at javafx.scene.layout.Region.minHeight(Region.java:1404) > at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) > at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) > at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) > at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) > at javafx.scene.control.Control.computePrefHeight(Control.java:543) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) > at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) > at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) > at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) > at javafx.scene.control.Control.layoutChildren(Control.java:574) > at javafx.scene.Parent.layout(Parent.java:1076) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Scene.doLayoutPass(Scene.java:576) > at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) > at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) > at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) > at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) > at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) > at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) > at com.sun.glass.ui.win.WinApplication._runL
Re: Layout regression
Thanks Scott. It maybe that if you can't isolate a case, you can build FX from source (easy on Mac or Linux) and add some prints and debugging code. See you in the JIRA! Steve On 2014-05-22 3:55 PM, Scott Palmer wrote: This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer wrote: I'm investigating an issue with my application where things are working fine running with JavaFX 2.2 on 7u55, but I have a particular case where 8u5 is throwing the following exception during layout: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) at javafx.scene.control.Control.computePrefHeight(Control.java:543) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Control.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) at java.lang.Thread.run(Thread.java:745) As you can see, it's all JavaFX code on the stack, so this is a little tricky to debug. As such I'm not sure yet if this is a JavaFX bug introduced with 8.0 or an application bug that was masked in JavaFX 2.2 and is now showing up in JavaFX 8. This happens when the managed/visible state of children changes.. but I think it only for the case when all the children become unmanaged. Once it happens JavaFX is crippled and pretty much all layout is broken. Popups (menus) still work and I can exit the application, but all layout in the main window seems to not happen anymore. Manual positioning of nodes still works though. I'll try to isolate a reproducible test case and file a bug report of course. Scott
Re: Layout regression
This appears to be a bug introduced in JavaFX 8 I have filed https://javafx-jira.kenai.com/browse/RT-37252 and will work on a test case. Scott On Thu, May 22, 2014 at 3:45 PM, Scott Palmer wrote: > I'm investigating an issue with my application where things are > working fine running with JavaFX 2.2 on 7u55, but I have a particular > case where 8u5 is throwing the following exception during layout: > > Exception in thread "JavaFX Application Thread" java.lang.NullPointerException > at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) > at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) > at javafx.scene.Parent.minHeight(Parent.java:946) > at javafx.scene.layout.Region.minHeight(Region.java:1404) > at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) > at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) > at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) > at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) > at javafx.scene.Parent.minHeight(Parent.java:946) > at javafx.scene.layout.Region.minHeight(Region.java:1404) > at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) > at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) > at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) > at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at > com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) > at javafx.scene.control.Control.computePrefHeight(Control.java:543) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) > at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) > at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) > at javafx.scene.Parent.prefHeight(Parent.java:918) > at javafx.scene.layout.Region.prefHeight(Region.java:1438) > at > com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) > at > com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) > at javafx.scene.control.Control.layoutChildren(Control.java:574) > at javafx.scene.Parent.layout(Parent.java:1076) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Parent.layout(Parent.java:1082) > at javafx.scene.Scene.doLayoutPass(Scene.java:576) > at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) > at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) > at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) > at java.security.AccessController.doPrivileged(Native Method) > at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) > at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) > at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) > at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) > at > com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) > at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) > at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) > at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) > at java.lang.Thread.run(Thread.java:745) > > As you can see, it's all JavaFX code on the stack, so this is a little > tricky to debug. As such I'm not sure yet if this is a JavaFX bug > introduced with 8.0 or an application bug that was masked in JavaFX > 2.2 and is now showing up in JavaFX 8. > > This happens when the managed/visible state of children changes.. but > I think it only for the case when all the children become unmanaged. > > Once it happens JavaFX is crippled and pretty much all layout is > broken. Popups (menus) still work and I can exit the application, but > all layout in the main window seems to not happen anymore. Manual > positioning of nodes still works though. > > I'll try to isolate a reproducible test case and file a bug report of course. > > Scott
Layout regression
I'm investigating an issue with my application where things are working fine running with JavaFX 2.2 on 7u55, but I have a particular case where 8u5 is throwing the following exception during layout: Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at javafx.scene.layout.GridPane.computeMinHeights(GridPane.java:1450) at javafx.scene.layout.GridPane.computeMinHeight(GridPane.java:1224) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildMinAreaHeight(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight(Region.java:1854) at javafx.scene.layout.StackPane.computeMinHeight(StackPane.java:293) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1404) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.Region.getMaxAreaHeight(Region.java:1982) at javafx.scene.layout.Region.computeMaxPrefAreaHeight(Region.java:1884) at javafx.scene.layout.StackPane.computePrefHeight(StackPane.java:310) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.TitledPaneSkin.computePrefHeight(TitledPaneSkin.java:249) at javafx.scene.control.Control.computePrefHeight(Control.java:543) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at javafx.scene.layout.Region.computeChildPrefAreaHeight(Region.java:1765) at javafx.scene.layout.GridPane.computePrefHeights(GridPane.java:1407) at javafx.scene.layout.GridPane.computePrefHeight(GridPane.java:1242) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java:1438) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:916) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Control.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:321) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:319) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:319) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:348) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(QuantumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112) at java.lang.Thread.run(Thread.java:745) As you can see, it's all JavaFX code on the stack, so this is a little tricky to debug. As such I'm not sure yet if this is a JavaFX bug introduced with 8.0 or an application bug that was masked in JavaFX 2.2 and is now showing up in JavaFX 8. This happens when the managed/visible state of children changes.. but I think it only for the case when all the children become unmanaged. Once it happens JavaFX is crippled and pretty much all layout is broken. Popups (menus) still work and I can exit the application, but all layout in the main window seems to not happen anymore. Manual positioning of nodes still works though. I'll try to isolate a reproducible test case and file a bug report of course. Scott
hg: openjfx/8/controls/rt: RT-24920: [CheckBox, RadioButton] Layout regression (was: Text Overrun incorrect work in CheckBox and RadioButton)
Changeset: c52ac94b9d02 Author:leifs Date: 2013-08-29 12:48 -0700 URL: http://hg.openjdk.java.net/openjfx/8/controls/rt/rev/c52ac94b9d02 RT-24920: [CheckBox, RadioButton] Layout regression (was: Text Overrun incorrect work in CheckBox and RadioButton) ! modules/controls/src/main/java/com/sun/javafx/scene/control/skin/LabeledSkinBase.java