-
Bug
-
Resolution: Fixed
-
P3
-
8u20
The following is happening since Java 8u20.
It happens in our application, when we display a nested menu in a ContextMenu.
I've tried to isolate the problem into a reproducible test case, but couldn't reproduce the issue there.
If you really need a test case, I will try to provide one!
java.lang.NullPointerException
at com.sun.javafx.scene.control.skin.ContextMenuContent.disposeContextMenu(ContextMenuContent.java:290)
at com.sun.javafx.scene.control.skin.ContextMenuContent.hideSubmenu(ContextMenuContent.java:854)
at com.sun.javafx.scene.control.skin.ContextMenuContent.lambda$new$312(ContextMenuContent.java:756)
at com.sun.javafx.scene.control.skin.ContextMenuContent$$Lambda$358/12475003.changed(Unknown Source)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:178)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:148)
at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:144)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.scene.control.Menu.setShowing(Menu.java:187)
at javafx.scene.control.Menu.hide(Menu.java:402)
at com.sun.javafx.scene.control.skin.ContextMenuContent$2.changed(ContextMenuContent.java:829)
at com.sun.javafx.scene.control.skin.ContextMenuContent$2.changed(ContextMenuContent.java:818)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:178)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:148)
at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:144)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.stage.Window.setShowing(Window.java:841)
at javafx.stage.Window.hide(Window.java:866)
at javafx.stage.PopupWindow.hide(PopupWindow.java:465)
at javafx.scene.control.ContextMenu.hide(ContextMenu.java:300)
at javafx.stage.PopupWindow.doAutoHide(PopupWindow.java:835)
at javafx.stage.PopupWindow$PopupEventRedirector.handleFocusUngrabEvent(PopupWindow.java:1032)
at javafx.stage.PopupWindow$PopupEventRedirector.handleRedirectedEvent(PopupWindow.java:969)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:106)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventRedirector.redirectEvent(EventRedirector.java:124)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:103)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventRedirector.redirectEvent(EventRedirector.java:124)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:103)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at com.sun.javafx.stage.WindowPeerListener.focusUngrab(WindowPeerListener.java:105)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:93)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:133)
at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1229)
at com.sun.glass.ui.Window.notifyFocusUngrab(Window.java:1217)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.java:102)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/32678821.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
It happens in our application, when we display a nested menu in a ContextMenu.
I've tried to isolate the problem into a reproducible test case, but couldn't reproduce the issue there.
If you really need a test case, I will try to provide one!
java.lang.NullPointerException
at com.sun.javafx.scene.control.skin.ContextMenuContent.disposeContextMenu(ContextMenuContent.java:290)
at com.sun.javafx.scene.control.skin.ContextMenuContent.hideSubmenu(ContextMenuContent.java:854)
at com.sun.javafx.scene.control.skin.ContextMenuContent.lambda$new$312(ContextMenuContent.java:756)
at com.sun.javafx.scene.control.skin.ContextMenuContent$$Lambda$358/12475003.changed(Unknown Source)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:178)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:148)
at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:144)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.scene.control.Menu.setShowing(Menu.java:187)
at javafx.scene.control.Menu.hide(Menu.java:402)
at com.sun.javafx.scene.control.skin.ContextMenuContent$2.changed(ContextMenuContent.java:829)
at com.sun.javafx.scene.control.skin.ContextMenuContent$2.changed(ContextMenuContent.java:818)
at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:361)
at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:178)
at javafx.beans.property.ReadOnlyBooleanWrapper$ReadOnlyPropertyImpl.access$100(ReadOnlyBooleanWrapper.java:148)
at javafx.beans.property.ReadOnlyBooleanWrapper.fireValueChangedEvent(ReadOnlyBooleanWrapper.java:144)
at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:110)
at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
at javafx.stage.Window.setShowing(Window.java:841)
at javafx.stage.Window.hide(Window.java:866)
at javafx.stage.PopupWindow.hide(PopupWindow.java:465)
at javafx.scene.control.ContextMenu.hide(ContextMenu.java:300)
at javafx.stage.PopupWindow.doAutoHide(PopupWindow.java:835)
at javafx.stage.PopupWindow$PopupEventRedirector.handleFocusUngrabEvent(PopupWindow.java:1032)
at javafx.stage.PopupWindow$PopupEventRedirector.handleRedirectedEvent(PopupWindow.java:969)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:106)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventRedirector.redirectEvent(EventRedirector.java:124)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:103)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventRedirector.redirectEvent(EventRedirector.java:124)
at com.sun.javafx.event.EventRedirector.dispatchCapturingEvent(EventRedirector.java:103)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchCapturingEvent(CompositeEventDispatcher.java:43)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:52)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at com.sun.javafx.stage.WindowPeerListener.focusUngrab(WindowPeerListener.java:105)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:93)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.run(GlassWindowEventHandler.java:40)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassWindowEventHandler.handleWindowEvent(GlassWindowEventHandler.java:133)
at com.sun.glass.ui.Window.handleWindowEvent(Window.java:1229)
at com.sun.glass.ui.Window.notifyFocusUngrab(Window.java:1217)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.java:102)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/32678821.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
- relates to
-
JDK-8088594 NullPointerException on showing submenu of a contextmenu
- Resolved