Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
4.0.B1
-
None
-
None
-
Nightly build of CayenneModeler:
Version: 4.0.M6-SNAPSHOT
Build Date: May 06 2017 07:40:32
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)