[ https://issues.apache.org/jira/browse/CAY-2071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik closed CAY-2071. -------------------------------- Resolution: Cannot Reproduce Newer builds of the Modeler (after cayenne-dbsync) no longer exhibit this problem. Given a specific mapping, I can reproduce this on May 26, 2016 build, but not on Oct 12 build. > NullPointerException doing sync in ObjEntity with null target in > dbRelationship > ------------------------------------------------------------------------------- > > Key: CAY-2071 > URL: https://issues.apache.org/jira/browse/CAY-2071 > Project: Cayenne > Issue Type: Bug > Components: Modeler > Affects Versions: 4.0.M4 > Reporter: Olga Bondareva > > Steps: > 1) Create a dbEntity > 2) Create related mapped objEntity > 3) Add relationship to dbEntity without setting target > 4) ObjEntity->Properties->Sync ObjEntity with DbEntity > Bad idea to pass null into java.util.StringTokenizer (in our context bad idea > to create objEntityName from null)) > When we create new dbRelationship and don't add a target dbEntity and then > from objEntity try to do sync: > java.lang.NullPointerException > at java.util.StringTokenizer.<init>(StringTokenizer.java:199) > at java.util.StringTokenizer.<init>(StringTokenizer.java:221) > at > org.apache.cayenne.map.naming.NameConverter.underscoredToJava(NameConverter.java:80) > at > org.apache.cayenne.map.naming.DefaultNameGenerator.createObjEntityName(DefaultNameGenerator.java:80) > at > org.apache.cayenne.util.EntityMergeSupport.addMissingRelationships(EntityMergeSupport.java:189) > at > org.apache.cayenne.util.EntityMergeSupport.synchronizeWithDbEntity(EntityMergeSupport.java:162) > at > org.apache.cayenne.modeler.action.ObjEntitySyncAction.synchObjEntity(ObjEntitySyncAction.java:84) > at > org.apache.cayenne.modeler.action.ObjEntitySyncAction.performAction(ObjEntitySyncAction.java:68) > at > org.apache.cayenne.modeler.util.CayenneAction.actionPerformed(CayenneAction.java:162) > at > javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) > at > javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) > 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:6516) > at javax.swing.JComponent.processMouseEvent(JComponent.java:3312) > at java.awt.Component.processEvent(Component.java:6281) > at java.awt.Container.processEvent(Container.java:2229) > at java.awt.Component.dispatchEventImpl(Component.java:4872) > at java.awt.Container.dispatchEventImpl(Container.java:2287) > at java.awt.Component.dispatchEvent(Component.java:4698) > at > java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) > at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) > at java.awt.Container.dispatchEventImpl(Container.java:2273) > at java.awt.Window.dispatchEventImpl(Window.java:2719) > at java.awt.Component.dispatchEvent(Component.java:4698) > at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) > at java.awt.EventQueue.access$300(EventQueue.java:103) > at java.awt.EventQueue$3.run(EventQueue.java:706) > at java.awt.EventQueue$3.run(EventQueue.java:704) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) > at java.awt.EventQueue$4.run(EventQueue.java:720) > at java.awt.EventQueue$4.run(EventQueue.java:718) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) > at > java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) > at > java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) > at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) -- This message was sent by Atlassian JIRA (v6.3.4#6332)