Uploaded image for project: 'Cayenne'
  1. Cayenne
  2. CAY-2071

NullPointerException doing sync in ObjEntity with null target in dbRelationship

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 4.0.M4
    • None
    • Modeler
    • None

    Description

      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)

      Attachments

        Activity

          People

            Unassigned Unassigned
            ollybondareva Olga Bondareva
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: