[ https://issues.apache.org/jira/browse/CAY-2071?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Olga Bondareva updated CAY-2071: -------------------------------- Description: steps: 1) Create a dbEntity 2) Create related mapped objEntity 3) Add relationship to dbEntity without setting target 4) Go to dbEntity panel and try to do sync 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) was: steps: 1) Create a dbEntity 2) Create related mapped objEntity 3) Add relationship to dbEntity 4) Go to dbEntity panel and try to do sync 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) > 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.M3 > Reporter: Olga Bondareva > > steps: > 1) Create a dbEntity > 2) Create related mapped objEntity > 3) Add relationship to dbEntity without setting target > 4) Go to dbEntity panel and try to do sync > 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)