Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8123638

Regression : NPE when showing popup with TextArea content

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P3
    • 8
    • 8
    • javafx
    • java version "1.8.0-ea"
      Java(TM) SE Runtime Environment (build 1.8.0-ea-b99)
      Java HotSpot(TM) 64-Bit Server VM (build 25.0-b41, mixed mode)

    Description

      This issue is a regression since FX 8 b99.
      Try to run the attached test case.
      You will get the following exception :
      Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollBoundsToVisible(TextAreaSkin.java:1019)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollCaretToVisible(TextAreaSkin.java:1011)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.access$1200(TextAreaSkin.java:72)
      at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.layoutChildren(TextAreaSkin.java:302)
      at javafx.scene.Parent.layout(Parent.java:1047)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Group.impl_computeLayoutBounds(Group.java:159)
      at javafx.scene.Node$15.computeBounds(Node.java:3126)
      at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8775)
      at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8745)
      at javafx.scene.Node.getLayoutBounds(Node.java:3141)
      at javafx.stage.PopupWindow.syncWithRootBounds(PopupWindow.java:478)
      at javafx.stage.PopupWindow.access$000(PopupWindow.java:91)
      at javafx.stage.PopupWindow$1.invalidated(PopupWindow.java:106)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:135)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
      at javafx.scene.Node$LazyBoundsProperty.invalidate(Node.java:8785)
      at javafx.scene.Node.impl_layoutBoundsChanged(Node.java:3296)
      at javafx.scene.Node.impl_notifyLayoutBoundsChanged(Node.java:3696)
      at javafx.scene.Node.impl_geomChanged(Node.java:3648)
      at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
      at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
      at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
      at javafx.scene.Node.localBoundsChanged(Node.java:3661)
      at javafx.scene.Node.impl_geomChanged(Node.java:3649)
      at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
      at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
      at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
      at javafx.scene.Node.localBoundsChanged(Node.java:3661)
      at javafx.scene.Node.impl_geomChanged(Node.java:3649)
      at javafx.scene.Parent$1.onChanged(Parent.java:312)
      at com.sun.javafx.collections.TrackableObservableList$1.onChanged(TrackableObservableList.java:48)
      at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:315)
      at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:72)
      at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
      at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
      at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
      at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
      at javafx.collections.ModifiableObservableListBase.addAll(ModifiableObservableListBase.java:102)
      at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:223)
      at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:105)
      at com.sun.javafx.scene.control.skin.ScrollPaneSkin.initialize(ScrollPaneSkin.java:286)
      at com.sun.javafx.scene.control.skin.ScrollPaneSkin.<init>(ScrollPaneSkin.java:130)
      at javafx.scene.control.ScrollPane.createDefaultSkin(ScrollPane.java:578)
      at javafx.scene.control.Control.impl_processCSS(Control.java:866)
      at javafx.scene.Parent.impl_processCSS(Parent.java:1217)
      at javafx.scene.control.Control.impl_processCSS(Control.java:870)
      at javafx.scene.Parent.impl_processCSS(Parent.java:1217)
      at javafx.scene.Node.processCSS(Node.java:8575)
      at javafx.scene.Scene.doCSSPass(Scene.java:538)
      at javafx.scene.Scene.preferredSize(Scene.java:1503)
      at javafx.scene.Scene.impl_preferredSize(Scene.java:1570)
      at javafx.stage.Window$9.invalidated(Window.java:733)
      at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
      at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
      at javafx.stage.Window.setShowing(Window.java:799)
      at javafx.stage.Window.show(Window.java:814)
      at javafx.stage.PopupWindow.showImpl(PopupWindow.java:403)
      at javafx.stage.PopupWindow.show(PopupWindow.java:304)
      at tests.Test.startEditingSession(Test.java:63)
      at tests.Test$1.handle(Test.java:39)
      at tests.Test$1.handle(Test.java:35)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      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:49)
      at javafx.event.Event.fireEvent(Event.java:203)
      at javafx.scene.Node.fireEvent(Node.java:8023)
      at javafx.scene.control.Button.fire(Button.java:184)
      at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:183)
      at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:91)
      at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:84)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      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:203)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3543)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3374)
      at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3326)
      at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1617)
      at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2394)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:312)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:237)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:354)
      at com.sun.glass.ui.View.handleMouseEvent(View.java:514)
      at com.sun.glass.ui.View.notifyMouse(View.java:877)
      java.lang.NullPointerException
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollBoundsToVisible(TextAreaSkin.java:1019)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollCaretToVisible(TextAreaSkin.java:1011)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.access$1200(TextAreaSkin.java:72)
      at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.layoutChildren(TextAreaSkin.java:302)
      at javafx.scene.Parent.layout(Parent.java:1047)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Scene.doLayoutPass(Scene.java:545)
      at javafx.scene.Scene.access$3700(Scene.java:189)
      at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2295)
      at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:325)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:533)
      at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:513)
      at com.sun.javafx.tk.quantum.QuantumToolkit$16.run(QuantumToolkit.java:380)
      at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
      Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollBoundsToVisible(TextAreaSkin.java:1019)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.scrollCaretToVisible(TextAreaSkin.java:1011)
      at com.sun.javafx.scene.control.skin.TextAreaSkin.access$1200(TextAreaSkin.java:72)
      at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.layoutChildren(TextAreaSkin.java:302)
      at javafx.scene.Parent.layout(Parent.java:1047)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Parent.layout(Parent.java:1053)
      at javafx.scene.Group.impl_computeLayoutBounds(Group.java:159)
      at javafx.scene.Node$15.computeBounds(Node.java:3126)
      at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8775)
      at javafx.scene.Node$LazyBoundsProperty.get(Node.java:8745)
      at javafx.scene.Node.getLayoutBounds(Node.java:3141)
      at javafx.stage.PopupWindow.syncWithRootBounds(PopupWindow.java:478)
      at javafx.stage.PopupWindow.access$000(PopupWindow.java:91)
      at javafx.stage.PopupWindow$1.invalidated(PopupWindow.java:106)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:135)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:80)
      at javafx.scene.Node$LazyBoundsProperty.invalidate(Node.java:8785)
      at javafx.scene.Node.impl_layoutBoundsChanged(Node.java:3296)
      at javafx.scene.Node.impl_notifyLayoutBoundsChanged(Node.java:3696)
      at javafx.scene.Node.impl_geomChanged(Node.java:3648)
      at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
      at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
      at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
      at javafx.scene.Node.localBoundsChanged(Node.java:3661)
      at javafx.scene.Node.impl_geomChanged(Node.java:3649)
      at javafx.scene.Parent.childBoundsChanged(Parent.java:1678)
      at javafx.scene.Node.notifyParentOfBoundsChange(Node.java:3718)
      at javafx.scene.Node.transformedBoundsChanged(Node.java:3679)
      at javafx.scene.Node.localBoundsChanged(Node.java:3661)
      at javafx.scene.Node.impl_geomChanged(Node.java:3649)
      at javafx.scene.Parent$1.onChanged(Parent.java:312)
      at com.sun.javafx.collections.TrackableObservableList$1.onChanged(TrackableObservableList.java:48)
      at com.sun.javafx.collections.ListListenerHelper$Generic.fireValueChangedEvent(ListListenerHelper.java:315)
      at com.sun.javafx.collections.ListListenerHelper.fireValueChangedEvent(ListListenerHelper.java:72)
      at javafx.collections.ObservableListBase.fireChange(ObservableListBase.java:233)
      at javafx.collections.ListChangeBuilder.commit(ListChangeBuilder.java:482)
      at javafx.collections.ListChangeBuilder.endChange(ListChangeBuilder.java:541)
      at javafx.collections.ObservableListBase.endChange(ObservableListBase.java:205)
      at javafx.collections.ModifiableObservableListBase.addAll(ModifiableObservableListBase.java:102)
      at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:223)
      at com.sun.javafx.collections.VetoableListDecorator.addAll(VetoableListDecorator.java:105)
      at com.sun.javafx.scene.control.skin.ScrollPaneSkin.initialize(ScrollPaneSkin.java:286)
      at com.sun.javafx.scene.control.skin.ScrollPaneSkin.<init>(ScrollPaneSkin.java:130)
      at javafx.scene.control.ScrollPane.createDefaultSkin(ScrollPane.java:578)
      at javafx.scene.control.Control.impl_processCSS(Control.java:866)
      at javafx.scene.Parent.impl_processCSS(Parent.java:1217)
      at javafx.scene.control.Control.impl_processCSS(Control.java:870)
      at javafx.scene.Parent.impl_processCSS(Parent.java:1217)
      at javafx.scene.Node.processCSS(Node.java:8575)
      at javafx.scene.Scene.doCSSPass(Scene.java:538)
      at javafx.scene.Scene.preferredSize(Scene.java:1503)
      at javafx.scene.Scene.impl_preferredSize(Scene.java:1570)
      at javafx.stage.Window$9.invalidated(Window.java:733)
      at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
      at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:143)
      at javafx.stage.Window.setShowing(Window.java:799)
      at javafx.stage.Window.show(Window.java:814)
      at javafx.stage.PopupWindow.showImpl(PopupWindow.java:403)
      at javafx.stage.PopupWindow.show(PopupWindow.java:304)
      at tests.Test.startEditingSession(Test.java:63)
      at tests.Test$1.handle(Test.java:39)
      at tests.Test$1.handle(Test.java:35)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      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:49)
      at javafx.event.Event.fireEvent(Event.java:203)
      at javafx.scene.Node.fireEvent(Node.java:8023)
      at javafx.scene.control.Button.fire(Button.java:184)
      at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:183)
      at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:91)
      at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:84)
      at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
      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:203)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3543)
      at javafx.scene.Scene$MouseHandler.process(Scene.java:3374)
      at javafx.scene.Scene$MouseHandler.access$1900(Scene.java:3326)
      at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1617)
      at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2394)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:312)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:237)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:354)
      at com.sun.glass.ui.View.handleMouseEvent(View.java:514)
      at com.sun.glass.ui.View.notifyMouse(View.java:877)

      Attachments

        Activity

          People

            miflemi Mick Fleming
            slions Sandra Lions-piron
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:
              Imported: