[
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)