Andrus Adamchik created CAY-2303:
------------------------------------

             Summary: Modeler: Exception when creating a new ObjEntity from 
DbEntity
                 Key: CAY-2303
                 URL: https://issues.apache.org/jira/browse/CAY-2303
             Project: Cayenne
          Issue Type: Bug
    Affects Versions: 4.0.M6
         Environment: Nightly build of CayenneModeler:

Version: 4.0.M6-SNAPSHOT
Build Date: May 06 2017 07:40:32
            Reporter: Andrus Adamchik
            Assignee: Nikita Timofeev
            Priority: Minor


1. Created new Model with 2 DataMaps (don't think 2 DataMaps is relevant here)
2. Created 2 DbEntities
3. Created a relationship between them, but forgot to specify joins
4. Clicked on "Create ObjEntity" button inside DbEntity editor. 
5. The stack below appeared in a dialog. 

I guess we can handle this condition more gracefully.

java.lang.IllegalArgumentException: No joins for relationship. Can't generate a 
name
        at 
org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator.toOneRelationshipName(DefaultObjectNameGenerator.java:106)
        at 
org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator.relationshipName(DefaultObjectNameGenerator.java:61)
        at 
org.apache.cayenne.modeler.action.DbEntitySyncAction$PreserveRelationshipNameGenerator.relationshipName(DbEntitySyncAction.java:141)
        at 
org.apache.cayenne.dbsync.merge.context.EntityMergeSupport.createObjRelationship(EntityMergeSupport.java:198)
        at 
org.apache.cayenne.dbsync.merge.context.EntityMergeSupport.addMissingRelationship(EntityMergeSupport.java:260)
        at 
org.apache.cayenne.dbsync.merge.context.EntityMergeSupport.addMissingRelationships(EntityMergeSupport.java:189)
        at 
org.apache.cayenne.dbsync.merge.context.EntityMergeSupport.synchronizeWithDbEntity(EntityMergeSupport.java:148)
        at 
org.apache.cayenne.modeler.action.CreateObjEntityAction.createObjEntity(CreateObjEntityAction.java:119)
        at 
org.apache.cayenne.modeler.action.CreateObjEntityAction.performAction(CreateObjEntityAction.java:79)
        at 
org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:163)
        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:2236)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2294)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
        at java.awt.Container.dispatchEventImpl(Container.java:2280)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        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:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        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)




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to