[ 
https://issues.apache.org/jira/browse/CAY-2303?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrus Adamchik updated CAY-2303:
---------------------------------
    Description: 
1. Created new project 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)


  was:
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)



> 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 project 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