Details
Description
I don't think I can reproduce this anymore, but the original scenario was a rather common sequence of events: add a new ObjRelationship and then click on it. So likely a race condition.
CayenneModeler Info
Version: cayenne.version
Build Date: cayenne.build.date
Exception:
=================================
java.lang.IllegalArgumentException: Row index out of range
at javax.swing.JTable.boundRow(JTable.java:1392)
at javax.swing.JTable.addRowSelectionInterval(JTable.java:1442)
at org.apache.cayenne.modeler.util.CayenneTable$CayenneListSelectionModel.setSelection(CayenneTable.java:178)
at org.apache.cayenne.modeler.util.CayenneTable.select(CayenneTable.java:102)
at org.apache.cayenne.modeler.editor.ObjEntityRelationshipTab.selectRelationships(ObjEntityRelationshipTab.java:232)
at org.apache.cayenne.modeler.editor.ObjEntityTabbedView.currentObjRelationshipChanged(ObjEntityTabbedView.java:157)
at org.apache.cayenne.modeler.ProjectController.fireObjRelationshipDisplayEvent(ProjectController.java:1482)
at org.apache.cayenne.modeler.editor.ObjEntityRelationshipTab.processExistingSelection(ObjEntityRelationshipTab.java:272)
at org.apache.cayenne.modeler.editor.ObjEntityRelationshipTab$2.valueChanged(ObjEntityRelationshipTab.java:206)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at org.apache.cayenne.modeler.util.CayenneTable$CayenneListSelectionModel.fireValueChanged(CayenneTable.java:189)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:408)
at javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:417)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:441)
at org.apache.cayenne.modeler.util.CayenneTable.select(CayenneTable.java:81)
at org.apache.cayenne.modeler.editor.ObjEntityRelationshipTab.objRelationshipAdded(ObjEntityRelationshipTab.java:333)
at org.apache.cayenne.modeler.ProjectController.fireObjRelationshipEvent(ProjectController.java:1437)
at org.apache.cayenne.modeler.action.CreateRelationshipAction.fireObjRelationshipEvent(CreateRelationshipAction.java:94)
at org.apache.cayenne.modeler.action.CreateRelationshipAction.createObjRelationship(CreateRelationshipAction.java:86)
at org.apache.cayenne.modeler.action.CreateRelationshipAction.performAction(CreateRelationshipAction.java:66)
at org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:163)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
at java.awt.Component.processMouseEvent(Component.java:5602)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5367)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:4068)
at java.awt.Container.dispatchEventImpl(Container.java:2068)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
at java.awt.Container.dispatchEventImpl(Container.java:2054)
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)