You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Olga Bondareva (JIRA)" <ji...@apache.org> on 2016/04/01 14:09:25 UTC

[jira] [Updated] (CAY-2071) NullPointerException doing sync in ObjEntity with null target in dbRelationship

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