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

LightPlayground: StackOverflowError on editing text in a TextInputControl

XMLWordPrintable

      I was playing with LightPlayground. I had selected "Diverging Lens" as an obstacle and was trying to change the width. I selected the entire text and started typing in a new value when this exception arose. I was able to reproduce the problem. There was also a IndexOutOfBoundsException (see after the StackOverflowError stack).

      Glass detected outstanding Java exception at -[GlassViewDelegate sendJavaKeyEvent:isDown:]:/Users/dgrieve/repos/javafx/2.1/scrum/controls/jfx/glass/glass-mat-lib-macosx/src/com/sun/mat/ui/GlassViewDelegate.m:368
      Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.StackOverflowError
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:125)
      at com.sun.glass.ui.View.handleKeyEvent(View.java:282)
      at com.sun.glass.ui.View.notifyKey(View.java:597)
      Caused by: java.lang.StackOverflowError
      at javafx.beans.binding.IntegerBinding.invalidate(IntegerBinding.java:148)
      at com.sun.javafx.binding.BindingHelperObserver.invalidated(BindingHelperObserver.java:29)
      at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidationMultipleChange.fireValueChangedEvent(ExpressionHelper.java:512)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:991)
      at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:995)
      at javafx.scene.control.TextInputControl$TextProperty.invalidate(TextInputControl.java:935)
      at javafx.scene.control.TextInputControl$TextProperty.access$100(TextInputControl.java:907)
      at javafx.scene.control.TextInputControl$1.invalidated(TextInputControl.java:109)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:140)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:75)
      at javafx.scene.control.TextInputControl$TextProperty.doSet(TextInputControl.java:1003)
      at javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:930)
      at javafx.scene.control.TextInputControl.setText(TextInputControl.java:162)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:194)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:182)
      at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidationMultipleChange.fireValueChangedEvent(ExpressionHelper.java:515)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:991)
      at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:995)
      at javafx.scene.control.TextInputControl$TextProperty.invalidate(TextInputControl.java:935)
      at javafx.scene.control.TextInputControl$TextProperty.access$100(TextInputControl.java:907)
      at javafx.scene.control.TextInputControl$1.invalidated(TextInputControl.java:109)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:140)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:75)
      at javafx.scene.control.TextInputControl$TextProperty.doSet(TextInputControl.java:1003)
      at javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:930)
      at javafx.scene.control.TextInputControl.setText(TextInputControl.java:162)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:194)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:182)
      at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidationMultipleChange.fireValueChangedEvent(ExpressionHelper.java:515)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:991)
      at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:995)
      at javafx.scene.control.TextInputControl$TextProperty.invalidate(TextInputControl.java:935)
      at javafx.scene.control.TextInputControl$TextProperty.access$100(TextInputControl.java:907)
      at javafx.scene.control.TextInputControl$1.invalidated(TextInputControl.java:109)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:140)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextField$TextFieldContent.delete(TextField.java:75)
      at javafx.scene.control.TextInputControl$TextProperty.doSet(TextInputControl.java:1003)
      at javafx.scene.control.TextInputControl$TextProperty.set(TextInputControl.java:930)
      at javafx.scene.control.TextInputControl.setText(TextInputControl.java:162)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:194)
      at lightplayground.view.obstaclepanel.control.ControlsFactory$4.changed(ControlsFactory.java:182)
      at com.sun.javafx.binding.ExpressionHelper$MultipleInvalidationMultipleChange.fireValueChangedEvent(ExpressionHelper.java:515)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:64)
      at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:991)
      at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:995)
      at javafx.scene.control.TextInputControl$TextProperty.invalidate(TextInputControl.java:935)
      at javafx.scene.control.TextInputControl$TextProperty.access$100(TextInputControl.java:907)
      at javafx.scene.control.TextInputControl$1.invalidated(TextInputControl.java:109)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:140)



      Glass detected outstanding Java exception at -[GlassViewDelegate sendJavaKeyEvent:isDown:]:/Users/dgrieve/repos/javafx/2.1/scrum/controls/jfx/glass/glass-mat-lib-macosx/src/com/sun/mat/ui/GlassViewDelegate.m:368
      Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException
      at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:333)
      at com.sun.javafx.scene.control.skin.TextFieldSkin.replaceText(TextFieldSkin.java:407)
      at com.sun.javafx.scene.control.behavior.TextFieldBehavior.replaceText(TextFieldBehavior.java:134)
      at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.defaultKeyTyped(TextInputControlBehavior.java:188)
      at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.callAction(TextInputControlBehavior.java:115)
      at com.sun.javafx.scene.control.behavior.BehaviorBase.callActionForEvent(BehaviorBase.java:157)
      at com.sun.javafx.scene.control.behavior.TextInputControlBehavior.callActionForEvent(TextInputControlBehavior.java:108)
      at com.sun.javafx.scene.control.behavior.BehaviorBase$1.handle(BehaviorBase.java:121)
      at com.sun.javafx.scene.control.behavior.BehaviorBase$1.handle(BehaviorBase.java:119)
      at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:56)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:162)
      at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:115)
      at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:38)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
      at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)
      at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:92)
      at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:47)
      at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)
      at javafx.event.Event.fireEvent(Event.java:171)
      at javafx.scene.Scene$KeyHandler.process(Scene.java:3135)
      at javafx.scene.Scene$KeyHandler.access$1800(Scene.java:3065)
      at javafx.scene.Scene.impl_processKeyEvent(Scene.java:1485)
      at javafx.scene.Scene$ScenePeerListener.keyEvent(Scene.java:1916)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(GlassViewEventHandler.java:108)
      at com.sun.glass.ui.View.handleKeyEvent(View.java:282)
      at com.sun.glass.ui.View.notifyKey(View.java:597)

            Unassigned Unassigned
            dgrieve David Grieve
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Imported: