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

Problems with TableView

XMLWordPrintable

    • x86_64
    • windows_7

      FULL PRODUCT VERSION :
      C:\Users\e98594>java -version
      java version "1.8.0_91"
      Java(TM) SE Runtime Environment (build 1.8.0_91-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.91-b15, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Windows 7 Enterprise 6.1.7601 Service Pack 1 Build 7601

      A DESCRIPTION OF THE PROBLEM :
      When I am using TableView for different applications, I am often getting this error printed to my console. None of the stack has my domain in it, only JavaFX internal stuff. I am suspecting this is a bug.

      java.lang.IndexOutOfBoundsException: Index: 10, Size: 10
      at java.util.ArrayList.rangeCheck(ArrayList.java:653)
      at java.util.ArrayList.get(ArrayList.java:429)
      at javafx.scene.Scene$MouseHandler.handleNodeRemoval(Scene.java:3575)
      at javafx.scene.Scene$MouseHandler.access$7600(Scene.java:3485)
      at javafx.scene.Scene.generateMouseExited(Scene.java:3482)
      at javafx.scene.Parent$2.onProposedChange(Parent.java:487)
      at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:113)
      at com.sun.javafx.collections.VetoableListDecorator.setAll(VetoableListDecorator.java:108)
      at com.sun.javafx.scene.control.skin.LabeledSkinBase.updateChildren(LabeledSkinBase.java:580)
      at com.sun.javafx.scene.control.skin.LabeledSkinBase.handleControlPropertyChanged(LabeledSkinBase.java:181)
      at com.sun.javafx.scene.control.skin.TableCellSkinBase.handleControlPropertyChanged(TableCellSkinBase.java:128)
      at com.sun.javafx.scene.control.skin.BehaviorSkinBase.lambda$registerChangeListener$61(BehaviorSkinBase.java:197)
      at com.sun.javafx.scene.control.MultiplePropertyChangeListenerHandler$1.changed(MultiplePropertyChangeListenerHandler.java:55)
      at javafx.beans.value.WeakChangeListener.changed(WeakChangeListener.java:89)
      at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
      at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
      at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
      at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
      at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
      at javafx.beans.property.ObjectProperty.setValue(ObjectProperty.java:69)
      at javafx.scene.control.Labeled.setGraphic(Labeled.java:423)
      at javafx.scene.control.TableColumn$1$1.updateItem(TableColumn.java:214)
      at javafx.scene.control.TableCell.updateItem(TableCell.java:663)
      at javafx.scene.control.TableCell.indexChanged(TableCell.java:468)
      at javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:116)
      at com.sun.javafx.scene.control.skin.TableRowSkinBase.requestCellUpdate(TableRowSkinBase.java:659)
      at com.sun.javafx.scene.control.skin.TableRowSkinBase.lambda$init$497(TableRowSkinBase.java:159)
      at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137)
      at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
      at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
      at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
      at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
      at javafx.scene.control.Cell.setItem(Cell.java:403)
      at javafx.scene.control.Cell.updateItem(Cell.java:670)
      at javafx.scene.control.TableRow.updateItem(TableRow.java:259)
      at javafx.scene.control.TableRow.indexChanged(TableRow.java:225)
      at javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:116)
      at com.sun.javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1957)
      at com.sun.javafx.scene.control.skin.VirtualFlow.addTrailingCells(VirtualFlow.java:1344)
      at com.sun.javafx.scene.control.skin.VirtualFlow.adjustPixels(VirtualFlow.java:2397)
      at com.sun.javafx.scene.control.skin.VirtualFlow$2.handle(VirtualFlow.java:589)
      at com.sun.javafx.scene.control.skin.VirtualFlow$2.handle(VirtualFlow.java:531)
      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.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:198)
      at javafx.scene.Scene.processGestureEvent(Scene.java:1840)
      at javafx.scene.Scene.access$300(Scene.java:159)
      at javafx.scene.Scene$ScenePeerListener.scrollEvent(Scene.java:2572)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$null$357(GlassViewEventHandler.java:474)
      at java.security.AccessController.doPrivileged(Native Method)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleScrollEvent$358(GlassViewEventHandler.java:470)
      at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
      at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleScrollEvent(GlassViewEventHandler.java:469)
      at com.sun.glass.ui.View.notifyScroll(View.java:959)
      at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
      at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
      at java.lang.Thread.run(Thread.java:745)


      REGRESSION. Last worked in version 8u92

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      I can't think of exactly how to replicate this. But I have noticed when I create complex TableViews that use Nodes for the cell values and those values can change. This happens fairly often for different applications I am writing.

      It seems to happen when a SortedList is backing the TableView, and sometimes happen when I click the sorters.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      There shouldn't be a stacktrace printed to the console
      ACTUAL -
      I get the stacktrace in the description, and occasionally a TableView that starts to misbehave (e.g. fails to sort all values in a column).

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      I get a stack trace indicating something in the implementation tried to access beyond the ArrayList size.

      REPRODUCIBILITY :
      This bug can be reproduced often.

            aroy Abhijit Roy (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: