Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-2533

Modeler: Exception on validating ObjRelationship without db path

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.1.B1
    • Fix Version/s: 4.1.B1
    • Component/s: Modeler
    • Labels:
      None

      Description

      note: Exception never reproduces with ObjEntities on freshly imported db.   It appears after some time, but with same scenario

      1. Datamap java package is configured, db is imported. Saved
      2. Update any ObjEntity name field, click Cancel on Update popup window
      3. Hit Save

      -> Feb 8, 2019 4:17:18 PM ERROR: CayenneModeler Error
      java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
          at java.util.ArrayList.rangeCheck(ArrayList.java:657)
          at java.util.ArrayList.get(ArrayList.java:433)
          at java.util.Collections$UnmodifiableList.get(Collections.java:1309)
          at org.apache.cayenne.map.ObjRelationship.isToPK(ObjRelationship.java:396)
          at org.apache.cayenne.project.validation.ObjRelationshipValidator.validate(ObjRelationshipValidator.java:129)
          at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitObjRelationship(DefaultProjectValidator.java:197)
          at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitObjEntity(DefaultProjectValidator.java:191)
          at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataMap(DefaultProjectValidator.java:119)
          at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataChannelDescriptor(DefaultProjectValidator.java:106)
          at org.apache.cayenne.project.validation.DefaultProjectValidator$ValidationVisitor.visitDataChannelDescriptor(DefaultProjectValidator.java:90)
          at org.apache.cayenne.configuration.DataChannelDescriptor.acceptVisitor(DataChannelDescriptor.java:100)
          at org.apache.cayenne.project.validation.DefaultProjectValidator.validate(DefaultProjectValidator.java:87)
          at org.apache.cayenne.modeler.action.SaveAsAction.performAction(SaveAsAction.java:160)
          at org.apache.cayenne.modeler.action.SaveAsAction.performAction(SaveAsAction.java:154)
          at org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:171)
          at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
          at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
          at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
          at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
          at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
          at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
          at java.awt.Component.processMouseEvent(Component.java:6533)
          at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
          at java.awt.Component.processEvent(Component.java:6298)
          at java.awt.Container.processEvent(Container.java:2238)
          at java.awt.Component.dispatchEventImpl(Component.java:4889)
          at java.awt.Container.dispatchEventImpl(Container.java:2296)
          at java.awt.Component.dispatchEvent(Component.java:4711)
          at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4897)
          at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
          at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4475)
          at java.awt.Container.dispatchEventImpl(Container.java:2282)
          at java.awt.Window.dispatchEventImpl(Window.java:2746)
          at java.awt.Component.dispatchEvent(Component.java:4711)
          at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
          at java.awt.EventQueue.access$500(EventQueue.java:97)
          at java.awt.EventQueue$3.run(EventQueue.java:709)
          at java.awt.EventQueue$3.run(EventQueue.java:703)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
          at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
          at java.awt.EventQueue$4.run(EventQueue.java:733)
          at java.awt.EventQueue$4.run(EventQueue.java:731)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
          at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
          at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
          at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
          at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
          at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
          at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
          at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

        Attachments

          Activity

            People

            • Assignee:
              ntimofeev Nikita Timofeev
              Reporter:
              abenko ana benko
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: