-
Bug
-
Resolution: Fixed
-
P2
-
None
-
None
-
Mac, Windows
As soon as the file is reloaded, the TreeView skin enters an infinite loop allocating memories like a crazy. Observed both on mac and Windows.
I captured thread stack as soon as the mem allocation started, it seems that an infinite number of TreeCell is allocated.
at javafx.scene.Parent$1.onProposedChange(Parent.java:249)
at com.sun.javafx.collections.VetoableObservableList.add(VetoableObservableList.java:165)
at com.sun.javafx.collections.ObservableListWrapper.add(ObservableListWrapper.java:144)
at com.sun.javafx.scene.control.skin.VirtualFlow.getAvailableCell(VirtualFlow.java:1606)
at com.sun.javafx.scene.control.skin.VirtualFlow.addTrailingCells(VirtualFlow.java:1090)
at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:984)
at com.sun.javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:206)
at com.sun.javafx.scene.control.skin.TreeViewSkin.updateItemCount(TreeViewSkin.java:225)
at com.sun.javafx.scene.control.skin.TreeViewSkin.handleControlPropertyChanged(TreeViewSkin.java:135)
at com.sun.javafx.scene.control.skin.SkinBase$3.changed(SkinBase.java:282)
at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:107)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:196)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:100)
at javafx.beans.property.IntegerPropertyBase.fireValueChangedEvent(IntegerPropertyBase.java:123)
at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:130)
at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:163)
at javafx.scene.control.TreeView.setTreeItemCount(TreeView.java:515)
at javafx.scene.control.TreeView.updateTreeItemCount(TreeView.java:876)
at javafx.scene.control.TreeView.updateRootExpanded(TreeView.java:928)
at javafx.scene.control.TreeView.access$400(TreeView.java:118)
at javafx.scene.control.TreeView$2.invalidated(TreeView.java:358)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:129)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:163)
at javafx.scene.control.TreeView.setRoot(TreeView.java:378)
at com.oracle.javafx.authoring.panels.layers.HierarchyPanel.updateRoot(HierarchyPanel.java:270)
at com.oracle.javafx.authoring.Frame.updateProject(Frame.java:1052)
at com.oracle.javafx.authoring.Frame.reloadProject(Frame.java:1008)
at com.oracle.javafx.authoring.Frame$3.handleProjectEvent(Frame.java:205)
at com.oracle.javafx.authoring.Project.notifyEventListeners(Project.java:816)
at com.oracle.javafx.authoring.watch.ProjectWatcher$3.run(ProjectWatcher.java:68)
at com.oracle.javafx.authoring.watch.ProjectWatcher$5.run(ProjectWatcher.java:350)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:141)
I captured thread stack as soon as the mem allocation started, it seems that an infinite number of TreeCell is allocated.
at javafx.scene.Parent$1.onProposedChange(Parent.java:249)
at com.sun.javafx.collections.VetoableObservableList.add(VetoableObservableList.java:165)
at com.sun.javafx.collections.ObservableListWrapper.add(ObservableListWrapper.java:144)
at com.sun.javafx.scene.control.skin.VirtualFlow.getAvailableCell(VirtualFlow.java:1606)
at com.sun.javafx.scene.control.skin.VirtualFlow.addTrailingCells(VirtualFlow.java:1090)
at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:984)
at com.sun.javafx.scene.control.skin.VirtualFlow.setCellCount(VirtualFlow.java:206)
at com.sun.javafx.scene.control.skin.TreeViewSkin.updateItemCount(TreeViewSkin.java:225)
at com.sun.javafx.scene.control.skin.TreeViewSkin.handleControlPropertyChanged(TreeViewSkin.java:135)
at com.sun.javafx.scene.control.skin.SkinBase$3.changed(SkinBase.java:282)
at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:107)
at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:196)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:100)
at javafx.beans.property.IntegerPropertyBase.fireValueChangedEvent(IntegerPropertyBase.java:123)
at javafx.beans.property.IntegerPropertyBase.markInvalid(IntegerPropertyBase.java:130)
at javafx.beans.property.IntegerPropertyBase.set(IntegerPropertyBase.java:163)
at javafx.scene.control.TreeView.setTreeItemCount(TreeView.java:515)
at javafx.scene.control.TreeView.updateTreeItemCount(TreeView.java:876)
at javafx.scene.control.TreeView.updateRootExpanded(TreeView.java:928)
at javafx.scene.control.TreeView.access$400(TreeView.java:118)
at javafx.scene.control.TreeView$2.invalidated(TreeView.java:358)
at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:129)
at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:163)
at javafx.scene.control.TreeView.setRoot(TreeView.java:378)
at com.oracle.javafx.authoring.panels.layers.HierarchyPanel.updateRoot(HierarchyPanel.java:270)
at com.oracle.javafx.authoring.Frame.updateProject(Frame.java:1052)
at com.oracle.javafx.authoring.Frame.reloadProject(Frame.java:1008)
at com.oracle.javafx.authoring.Frame$3.handleProjectEvent(Frame.java:205)
at com.oracle.javafx.authoring.Project.notifyEventListeners(Project.java:816)
at com.oracle.javafx.authoring.watch.ProjectWatcher$3.run(ProjectWatcher.java:68)
at com.oracle.javafx.authoring.watch.ProjectWatcher$5.run(ProjectWatcher.java:350)
at com.sun.javafx.application.PlatformImpl$3.run(PlatformImpl.java:141)